当我在<h:outputText>
中使用<p:panelGrid>
时,getter属性,getStartDate()
和getEndDate()
不起作用。但是,当我从页面中删除<p:panelGrid>
时,getter
属性运行良好。还有一件事,当我单击Go To Next Week
链接时,在endDate
操作方法中得到的nextWeek()
值为空。我不为什么,即使我将DatePick
用作Conversation 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;
}
}
最佳答案
您需要指定columns
属性。否则,它默认为0列,您需要显式使用<p:row>
和<p:column>
。另请参见the <p:panelGrid>
showcase。
您的具体功能要求尚不清楚,但是也许您想实现这种1列布局?
<p:panelGrid columns="1">
<h:outputText ... />
<h:outputText ... />
</p:panelGrid>
或者,也许您只想将它们显示在彼此下方?整个内容已经在普通的HTML
<table>
内部,并且使用<p:panelGrid>
在视觉上几乎没有意义。只需使用<br>
然后。<h:outputText ... />
<br />
<h:outputText ... />
关于java - 在<p:panelGrid>中的<h:outputText>不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12770112/