параметры поиска между 2 фрагментами - PullRequest
0 голосов
/ 08 августа 2011

У меня есть 2 фрагмента, которые в 2 интерфейса: состав:

(1)

     <p:panel id="pSearchParamas" >
     <div class="fieldset">
        <div class="field">
            <h:outputText id="lNickname" value="Nickname : " />
            <p:inputText id="itNickname" value="#{usersSearchController.nickname}" immediate="true"></p:inputText>
       </div>
        <div class="field">
            <h:outputText id="lDisplayName" value="Display Name :" />
            <p:inputText id="itDisplay" value="#{usersSearchController.displayname}" immediate="true"></p:inputText>
       </div>
        <div class="field">
            <h:panelGrid columns="1" style="margin-bottom:10px">
                <h:outputText id="lAge" value="Age :" />
                <br/>between<br/>
                <p:inputMask id="itAgeMin" value="#{usersSearchController.minAge}" mask="99" immediate="true" ></p:inputMask>
                <p:slider for="itAgeMin" step="5" maxValue="100" minValue="15" />
                <br/> and <br/>
                <p:inputMask id="itAgeMax" value="#{usersSearchController.maxAge}" mask="99" immediate="true" ></p:inputMask>
                <p:slider for="itAgeMax" step="5" maxValue="100" minValue="15" />
            </h:panelGrid>
       </div>
        <div class="field">
            <h:outputText id="lCountry" value="Country :" />
            <h:selectOneMenu id="somCountries" value="#{usersSearchController.countryId}" immediate="true">
                <f:selectItems value="#{countriesController.allCountriesItems}" ></f:selectItems>
            </h:selectOneMenu>
       </div>
    </div>
    <div class="AttributesArea">
        <h:outputText id="lAttributesArea" value="Attributes:"  />
    </div>
</p:panel>
        <p:commandLink id="bSearch" value="Search" action="#{usersSearchController.prepareResults}"
                       update="main:searchContentSnippet" process="pSearchParamas" ajax="true" >
        </p:commandLink>

(2)

     <p:outputPanel id="pResults" >
    <h:panelGroup rendered="#{usersSearchController.results.rowCount > 0}">
        <p:dataGrid id="dtResults"
                    value="#{usersSearchController.results}"
                    var="item"
                    rows="10" columns="10" >
            <p:column>
                <p:panel header="#{item.displayName}" style="text-align:center">
                    <h:panelGrid columns="1" style="width:100%">
                        <h:outputText value="#{item.displayName}"></h:outputText>
                        <p:graphicImage rendered="#{imagestickiesController.image != null}"
                                        value="#{imagestickiesController.image}" width="100" height="100"
                                        binding="#{imagestickiesController.imageforuserid}" >
                            <f:attribute  name="uID" value="#{item.userID}" />
                        </p:graphicImage>
                        <h:outputText id="lAboutMe" value="#{item.aboutMe}"/>
                    </h:panelGrid>
                </p:panel>
            </p:column>
        </p:dataGrid>
        <br/>
            <h:outputText value="#{usersSearchController.paginationHelper.pageFirstItem + 1}..#{usersSearchController.paginationHelper.pageLastItem + 1}/#{usersSearchController.paginationHelper.itemsCount}"/>&nbsp;
            <h:commandLink action="#{usersSearchController.previous}" value="#{bundle.Previous} #{usersSearchController.paginationHelper.pageSize}" rendered="#{usersSearchController.paginationHelper.hasPreviousPage}">
                <f:param   name="currentPageNumber" value="#{usersSearchController.paginationHelper.page}"/>
                <f:ajax render="pResults"></f:ajax>
            </h:commandLink>
                &nbsp;
            <h:commandLink action="#{usersSearchController.next}" value="#{bundle.Next} #{usersSearchController.paginationHelper.pageSize}" rendered="#{usersSearchController.paginationHelper.hasNextPage}">
                <f:param   name="currentPageNumber" value="#{usersSearchController.paginationHelper.page}"/>
                <f:ajax render="pResults"></f:ajax>
            </h:commandLink>
                &nbsp;                    
</h:panelGroup>
    <br/>
</p:outputPanel>

Теперь я хочувыполнить поиск, используя заданные параметры поиска (из фрагмента 1) и обновить значения в фрагменте 2 (p: dataGrid).Что происходит, так это то, что установщики и получатели параметров поиска вызываются после выполнения запроса (который выполняется для заполнения dataGrid).Я ищу решение, которое сделает параметры запросными для запроса (методы установки и получения каким-либо образом должны быть выполнены до выполнения запроса - запрос выполняется на usersSearchController.results).

Заранее спасибо.

1 Ответ

0 голосов
/ 08 августа 2011

Получив токен и значения, вы можете использовать «Apache Velocity» для замены токена значениями.

...