0

私の問題は、マネージド Bean コンストラクターが呼び出されないように見えるという事実に関連していると思います。つまり、コンストラクターにブレークポイントを設定すると、アプリはブレークポイントで停止しません。

ヘッダーを取得しますが、コンストラクターに追加された行は取得しません。

ここに私のコードがあります: 最初に xhtml:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

    <f:view contentType="text/html">
        <h:head>
            <f:facet name="first">
                <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
                <title>LOTTO CHECKER</title>
            </f:facet>
        </h:head>

        <h:body>

            <p:layout fullPage="true">

                <p:layoutUnit position="north" size="100" resizable="true" closable="true" collapsible="true">
                    LOTTO CHECKER
                </p:layoutUnit>

                <p:layoutUnit position="south" size="100" closable="true" collapsible="true">
                    Footer
                </p:layoutUnit>

                <p:layoutUnit position="west" size="175" header="Left" collapsible="true" >

                </p:layoutUnit>

                <p:layoutUnit position="center">
                    <h:form id="powerBallDrawingForm">
                        <p:dataTable  value="#(lottoCheckerBean.powerBallDrawings}" var="powerBallDrawing"   >
                            <p:column headerText="DATE">

                                <h:outputText  value ="#{powerBallDrawing.drawingDate}"/>
                            </p:column >
                            <p:column headerText="BALL 1">

                                <h:outputText value="#{powerBallDrawing.ball_1}" />
                            </p:column>                 
                            <p:column headerText ="BALL 2"> 

                                <h:outputText value="#{powerBallDrawing.ball_2}" />
                            </p:column>    
                            <p:column headerText ="BALL 3">

                                <h:outputText value="#{powerBallDrawing.ball_3}" />
                            </p:column>    
                            <p:column headerText ="BALL 4">

                                <h:outputText value="#{powerBallDrawing.ball_4}" />
                            </p:column>    
                            <p:column headerText="BALL 5">

                                <h:outputText value="#{powerBallDrawing.ball_5}" />
                            </p:column>    
                            <p:column headerText="POWER BALL">

                                <h:outputText value="#{powerBallDrawing.powerBall}" />
                            </p:column>    
                        </p:dataTable>
                    </h:form>
                </p:layoutUnit>

            </p:layout>

        </h:body>

    </f:view>
</html>

これでマネージド Bean

package PowerBall_BigBame_Checker;

import java.io.Serializable;

import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;


@ManagedBean
@SessionScoped

public class LottoCheckerBean  implements Serializable {

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")


    private List<PowerBallDrawing> powerBallDrawings; 

    public LottoCheckerBean()  {

       powerBallDrawings = new ArrayList<PowerBallDrawing>();
       powerBallDrawings.add( new PowerBallDrawing("03/16/2013",1,2,3,4,5,6));

    }







    public List<PowerBallDrawing> getPowerBallDrawings() {
        return this.powerBallDrawings;
    }

    public void setPowerBallDrawings(List<PowerBallDrawing> powerBallDrawings) {
        this.powerBallDrawings = powerBallDrawings;
    }


}

最後に、テーブルの行を構成するクラス:

package PowerBall_BigBame_Checker;

import java.io.Serializable;


public class PowerBallDrawing implements Serializable {

    private String drawingDate;
    private int ball_1;
    private int ball_2;
    private int ball_3;
    private int ball_4;
    private int ball_5;
    private int powerBall;

    public PowerBallDrawing(String drawingDate, int ball_1, int ball_2, int ball_3,
            int ball_4, int ball_5, int powerBall) {

        this.ball_1 = ball_1;
        this.ball_2 = ball_2;
        this.ball_3 = ball_3;
        this.ball_4 = ball_4;
        this.ball_5 = ball_5;
        this.powerBall = powerBall;
        this.drawingDate = drawingDate;




    }

    public String getDrawingDate() {
        return drawingDate;
    }

    public void setDrawingDate(String drawingDate) {
        this.drawingDate = drawingDate;
    }

    public int getBall_1() {
        return ball_1;
    }

    public void setBall_1(int ball_1) {
        this.ball_1 = ball_1;
    }

    public int getBall_2() {
        return ball_2;
    }

    public void setBall_2(int ball_2) {
        this.ball_2 = ball_2;
    }

    public int getBall_3() {
        return ball_3;
    }

    public void setBall_3(int ball_3) {
        this.ball_3 = ball_3;
    }

    public int getBall_4() {
        return ball_4;
    }

    public void setBall_4(int ball_4) {
        this.ball_4 = ball_4;
    }

    public int getBall_5() {
        return ball_5;
    }

    public void setBall_5(int ball_5) {
        this.ball_5 = ball_5;
    }

    public int getPowerBall() {
        return powerBall;
    }

    public void setPowerBall(int powerBall) {
        this.powerBall = powerBall;
    }
}

どこかで規則に違反していると思われますが、それは見られません。

4

2 に答える 2

0

コンストラクターで記述したコードは、次のメソッド内にある必要があります。

public void setPowerBallDrawings(List powerBallDrawings){

}

これは、変数にアクセスしようとすると、対応するセッターメソッドが呼び出されるためです。

これを一度試してください。動作するはずです。

于 2013-03-18T03:06:33.427 に答える
0

エラーを確認するために、クラスと jsf ページを既存のプロジェクトに追加しました。

あなたが持っている唯一のエラーはこの行にあります

<p:dataTable  value="#(lottoCheckerBean.powerBallDrawings}" var="powerBallDrawing">

コメントで述べたように、EL 式に(があります。正しい定義は次のとおりです。

<p:dataTable  value="#{lottoCheckerBean.powerBallDrawings}" var="powerBallDrawing">

これ以外にエラーはありません。

于 2013-03-18T09:22:24.213 に答える