2012-04-14 8 views
0

ページ更新時にヒットカウンタをインクリメントして2つの乱数を生成するjsfアプリケーションを作成しようとしています。あなたは、私が保持する2つのBean、1を作成することにしました。このプログラムでは、XおよびX豆を使用した乱数

を投げているあなた、あなたのロールX上で

:どのようなウィンドウに表示されなければならないことは、このようなものに見えるかもしれませんページリフレッシュカウンタと1つは乱数を生成する。それらは一瞬のために次のようになります。

CounterBean.java

package diceroll; 

public class CounterBean 
{ 
    int count=0; 
    public CounterBean() 
    { 

    } 
    public void setCount(int count) 
    { 
     this.count=count; 
    } 
    public int getCount() 
    { 
     count++; 

     return count; 
    } 
} 

RandomNumberBean.java

package diceroll; 

import java.util.Random; 

public class RandomNumberBean { 
    int rand=0; 
    Random r = new Random(); 
    public RandomNumberBean() 
    { 
     rand = r.nextInt(6); 
    } 
    public void setNextInt(int rand) 
    { 
     this.rand=rand; 
    } 
    public int getNextInt() { 
     return rand; 
    } 
} 

私は、上記のメッセージを表示するのindex.jspを作成しました。

org.apache.jasper.el.JspPropertyNotFoundException::/index.jsp(14,20)「#{RandomNumberBean私はアプリケーションを実行すると

<html> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> 
<f:view> 
    <head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Roll the Dice</title> 
    </head> 
    <body> 
     <h:form> 
      <p> 
       On your roll # 
       <h:outputText value="#{CounterBean.count} " /> 
       you have thrown <h:outputText value="#{RandomNumberBean.rand}" />and <h:outputText value="#{RandomNumberBean.rand} " /> 
      </p> 
     </h:form> 
    </body> 
</f:view> 
</html> 

はしかし、私は、次のメッセージが表示されます.rand}」プロパティ 'ランドは'

に起因diceroll.RandomNumberBeanタイプで見つかりません: org.apache.jasper.el.JspPropertyNotFoundException - /index.jsp(14,20) '#{RandomNumberBean.rand}プロパティ 'rand'がタイプdiceroll.RandomNumberBeanに見つかりません

私はfaces-config.xmlファイルでの間違いがありますと仮定し、その誰かがいくつかの助けを提供できる場合、私は、ここにもこれを投稿表示されます。

のfaces-config.xmlが

<?xml version="1.0" encoding="UTF-8"?> 

<faces-config 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" 
    version="2.0"> 
    <managed-bean> 
    <managed-bean-name>CounterBean</managed-bean-name> 
    <managed-bean-class>diceroll.CounterBean</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
    </managed-bean> 
    <managed-bean> 
    <managed-bean-name>RandomNumberBean</managed-bean-name> 
    <managed-bean-class>diceroll.RandomNumberBean</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
    </managed-bean> 
</faces-config> 
+0

'rand'しかし' nextInt'ません。そしてmanaged-bean-propertyが欠落しています。 –

+0

エラーメッセージが表示されないので、部分的に動作しているようです。しかし、私が得る唯一の数字は1です。 'あなたのロール1であなたは1と1をスローしました。 ' 'ロール2であなたは1と1をスローしました' など –

+0

それを私が直した。私はgetter内で 'rand = r.nextInt(6);'を動かすだけでした! –

答えて

2

ビューからBeanメンバーxxxにアクセスするには、それを機能させるにはgetXxxメソッドが必要です。ゲッターメソッド名の大文字のXが重要です。

int randにアクセスするには、public int getRand()メソッドが必要です。

メンバーなしでも機能します。xxxゲッターgetXxxで十分です。

だから、あなたもそれをして動作させることができます:

<h:outputText value="#{RandomNumberBean.nextInt}" /> 
関連する問題