2012-10-07 1 views
1

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

답변

2

당신은 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 ... /> 
+0

완벽하게 잘 작동합니다. – CycDemo

관련 문제