2013-09-25 58 views
0

我想創建一個頁面,其中一些內容將在ajax請求後顯示。這裏是我的代碼部分:JSF和AJAX:隱藏網站的一部分,直到第一個Ajax請求

<h:panelGroup> 
     <h:form> 
      Retrive object by id: <h:inputText id="myInput" value="#{myManager.id}"/> 
      <h:commandButton value="ok" action="#{myManager.getById}" > 
       <f:ajax execute="myInput" render="resultRow" /> 
      </h:commandButton> 
     <h:panelGroup id="resultRow" > 
      <br /> 
      You retrived object which id is: 
      <h:outputText value="#{retrivedObject.id}" /> 
      and its name is: 
      <h:outputText value="#{retrivedObject.name}" /> 
     </h:panelGroup> 
     </h:form> 
</h:panelGroup> 

我的問題是taht的「你retrived對象,它的ID是:」我之前也retrive任何對象呈現。我希望它被隱藏,直到我點擊我的命令按鈕。是否有可能只使用jsf + html(這必須用ajax完成)?如果我需要,我可以使用一些JavaScript,但我不喜歡。

我試圖通過rendered="#{!retrivedObject.id==0}"(我的對象不能有id 0)來解決這個問題,但這不起作用 - 面板組根本不會顯示,當我調用ajax reqest時,它無法找到「resultRow 「 ID。

感謝您的幫助。

+0

是否'如果{}'真的在普通Java工作? – BalusC

回答

0

它可能不是您正在尋找的內容,但您始終可以將panelGroup包裝到div中,並將div可見性設置爲隱藏,然後在單擊命令按鈕時使用javascript更改可見性。

+0

請考慮添加一些示例代碼或添加引用。 – Shawn

0

可以使用rendered屬性是這樣的:(!retrievedObject.getId()== 0)

<h:panelGroup> 
    <h:form> 
     Retrive object by id: <h:inputText id="myInput" value="#{myManager.id}"/> 
     <h:commandButton value="ok" action="#{myManager.getById}" > 
      <f:ajax execute="myInput" render="resultRow" /> 
     </h:commandButton> 
     <h:panelGroup id="resultRow"> 
      <h:panelGroup rendered="#{retrivedObject ne null}"> 
       <br /> 
       You retrived object which id is: 
       <h:outputText value="#{retrivedObject.id}" /> 
       and its name is: 
       <h:outputText value="#{retrivedObject.name}" /> 
      </h:panelGroup> 
     </h:panelGroup> 
    </h:form> 
</h:panelGroup> 
+0

我從來沒有見過'not'用作二元運算符,你的意思是'不是空的retrivedObject'? – mabi

+0

@mabi來自我的大錯,正確! –