<p:panelGrid>
에 <h:outputText>
을 사용하면 getter 속성 인 과 getEndDate()
이 작동하지 않습니다. 다만, 페이지로부터 <p:panelGrid>
을 삭제하면, getter
재산이 잘 작동합니다. 한가지 더, Go To Next Week
링크를 클릭하면, endDate
의 null 값을 nextWeek()
조치 메소드에 넣습니다. 나는 왜 DatePick
을 Conversation Scope
으로 사용 하느냐고 묻지 않는다.<h : outputText>가 <p:panelGrid>에서 작동하지 않습니까?
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;
}
}
완벽하게 잘 작동합니다. – CycDemo