JSF布局和模板

时间:2016-02-08 08:08:51

标签: html css jsf

我有一个模板化的search.xhtml页面,用于接受用户在页面上的搜索字词。用户点击"搜索!"按钮,结果将显示在搜索框下方的同一页面上,如下面的简单代码所示。

search.xhtml:

<ui:define name="search">
    <h:form id="wordForm">
            <h:inputText id="word" value="#{wordController.word}" />    
            <h:commandButton id="search" value="Search!"
                action="#{wordController.search}" />
    </h:form>
    </ui:define>

    /*** From here to display the search results!!! ***/
   <ui:define name="searchResult">      
    <h:outputText value="Search Results:"/>
    <c:forEach items="#{wordController.wordInfoList}" var="wordInfo">

        <h:outputText value="#{wordInfo.display}"
            rendered="#{not empty wordInfo.display}" /> 
         <ui:repeat value="#{wordInfo.relatedWords}" var="relatedInfo">
            <h:outputLink value="index.xhtml">
              <h:outputText value="#{relatedInfo}" />
              <f:param name="relatedWord" value="#{relatedInfo}" />
            </h:outputLink>
         </ui:repeat>
    </c:forEach>

/*Edit: Add a f:medatadata tag to accept the parameter "relatedWord" */
    <f:metadata>
            <f:viewParam id="related" name="relatedWord"
                value="#{wordController.word}" />
            <f:viewAction action="#{wordController.info()}" />
    </f:metadata> 
</ui:define>

layout.xhtml将search.xhtml插入页面。

layout.xhtml:

 <ui:fragment rendered="#{not empty wordController.word}">
        <div id="searchResult">
            <ui:insert name="searchResult">                 
            </ui:insert>
        </div>
</ui:fragment>

问题是,当用户访问该页面时,甚至在他点击“搜索”之前!按钮,搜索结果将始终与搜索框一起显示,但搜索结果将为空,但字符串&#34;搜索结果:&#34;不是空的。

如何修改此选项,以便在用户执行搜索之前,它只会显示搜索框。并且仅在用户单击搜索按钮后将搜索结果与搜索框一起显示。

谢谢。

0 个答案:

没有答案