【发布时间】:2012-09-28 00:26:19
【问题描述】:
当我在<p:panelGrid> 中使用<h:outputText> 时,getter 属性getStartDate() 和getEndDate() 不起作用。但是,当我从页面中删除 <p:panelGrid> 时,getter 属性运行良好。还有一件事,当我单击Go To Next Week 链接时,我在nextWeek() 操作方法中得到endDate 的空值。我不知道为什么,即使我将DatePick 用作Conversation Scope。
我的页面.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>
日期选择.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;
}
}
【问题讨论】:
标签: java jsf-2 primefaces seam