1

、ゲッタープロパティで使用する<h:outputText>と、機能しません。しかし、ページから削除すると、プロパティはうまく機能します。もう1つ、リンクをクリックすると、アクションメソッドのnull値が取得されます。asを使っていても、理由はわかりません。<p:panelGrid>getStartDate()getEndDate()<p:panelGrid>getterGo To Next WeekendDatenextWeek()DatePickConversation Scope

mypage.xhtml

<table>
    <tr>
        <td>
            <p:commandLink action="#{DatePick.nextWeek()}" immediate="true" value="Go To Next Week" />          
        </td>
    </tr>
    <tr>
        <td colspan="2">
            <p:panelGrid style="margin-top:-1px;" id="datePanel">
                    <h:outputText value="#{DatePick.startDate}" style="color:#333333;font-size:15px;">
                        <f:convertDateTime pattern="yyyy-MM-dd"/>
                    </h:outputText>
                    -
                    <h:outputText value="#{DatePick.endDate}" style="color:#333333;font-size:15px;">
                        <f:convertDateTime pattern="yyyy-MM-dd"/>
                    </h:outputText>
            </p:panelGrid>
        </td>
    </tr>
</table> 

DatePick.java

@Name("DatePick")
@Scope(ScopeType.CONVERSATION)
public class DatePick {
    private Date startDate;
    private Date endDate;
    private boolean initFlag = true;

    public void init() {
        System.out.println("init().....");
        initFlag = false;
        startDate = new Date();
    }

    public boolean getInitFlag() {
        System.out.println("getInitFlag() : " + initFlag);
        return initFlag;
    }

    public Date getEndDate() {
        Calendar cal = Calendar.getInstance();        
        cal.setTime(startDate);
        cal.add(Calendar.DATE, 7); 
        endDate =  cal.getTime();
        System.out.println("getEndDate() : " + endDate);
        return endDate;
    }

    public Date getStartDate() {
        System.out.println("getStartDate() : " + startDate);
        return startDate;            
    }

    public void nextWeek() {
        System.out.println("nextWeek() : " + endDate);
        startDate = endDate;
    }
}
4

1 に答える 1

2

columns属性を指定する必要があります。<p:row>それがないと、デフォルトで 0 列になり、 and を<p:column>明示的に使用する必要があります。ショーケースもご覧ください<p:panelGrid>

具体的な機能要件は不明ですが、この 1 列のレイアウトを実現したいですか?

<p:panelGrid columns="1">
    <h:outputText ... />
    <h:outputText ... />
</p:panelGrid>

それとも、それらを互いに下に表示したいだけですか? <table>全体がすでにプレーンな HTML の中にあり、 <p:panelGrid>for を使用することは視覚的にほとんど意味がありません。<br>then を使用するだけです。

<h:outputText ... />
<br />
<h:outputText ... />
于 2012-10-07T19:12:40.770 に答える