【问题标题】:Does not work <h:outputText> in <p:panelGrid>?<p:panelGrid> 中的 <h:outputText> 不起作用?
【发布时间】:2012-09-28 00:26:19
【问题描述】:

当我在&lt;p:panelGrid&gt; 中使用&lt;h:outputText&gt; 时,getter 属性getStartDate()getEndDate() 不起作用。但是,当我从页面中删除 &lt;p:panelGrid&gt; 时,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


    【解决方案1】:

    您需要指定columns 属性。没有它,它默认为 0 列,您需要明确使用 &lt;p:row&gt;&lt;p:column&gt;。另见the &lt;p:panelGrid&gt; showcase

    您的具体功能要求不清楚,但也许您想实现这种 1 列布局?

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

    或者也许您只是想将它们显示在彼此下方?整个事情已经在一个普通的 HTML &lt;table&gt; 中,并且使用 &lt;p:panelGrid&gt; 在视觉上几乎没有意义。只需使用&lt;br&gt; 即可。

    <h:outputText ... />
    <br />
    <h:outputText ... />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多