0

ページネーション付きのデータテーブルがrows = 7あります。最初の 7 項目が正しく読み込まれて表示されます。しかし、リンクをクリックして次の要素セットを表示すると、「レコードが見つかりません」と表示されます。

テーブル フッター テンプレートには、

     In total there are #{fn:length(deviceBean.devices)} devices. 

これは、私たち (11 個のアイテムが見つかりました) を示しています。

私は何を間違っていますか?

xhtml ファイルのコードは次のとおりです。

    <f:view xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions">

    <h:head />


    <h:form>
        <p:growl id="messages">
            <p:toolbarGroup align="right">
                <p:commandButton type="button" value="Summary" />
                <p:separator />
            </p:toolbarGroup>
        </p:growl>
    </h:form>

    <h:form>



        <p:dataTable id="tbl1" var="searchvalue"
            value="#{searchBean.searchmodel}" rows="1">
            <p:column>

                <f:facet name="header">
                    <h:outputText value="Search Criteria" />
                </f:facet>
                <h:outputText value="By State Name" />
            </p:column>

            <p:column>
                <f:facet name="header">
                    <h:outputText value="Search Input" />
                </f:facet>
                <h:outputText value="#{searchvalue.criteria}" />
            </p:column>

            <p:column>
                <f:facet name="header">
                    <h:outputText value="Selected Model" />
                </f:facet>
                <h:outputText value="#{searchvalue.model}" />
            </p:column>

            <p:column>
                <f:facet name="header">
                    <h:outputText value="Start date" />
                </f:facet>
                <h:outputText value="#{searchvalue.startdate}" />
            </p:column>

            <p:column>
                <f:facet name="header">
                    <h:outputText value="End date" />
                </f:facet>
                <h:outputText value="#{searchvalue.enddate}" />
            </p:column>
            <!-- <p:column>
                <f:facet name="header">
                    <h:outputText value="Age Range" />
                </f:facet>
                <h:outputText value="#{searchvalue.agerange}" />
            </p:column> -->

        </p:dataTable>
    </h:form>
<p:spacer width="100" height="10" /> and <p:spacer width="20" height="20" />
<h:outputText value="&#160;" />
    <h:form>

        <h:form>
            <p:growl id="messages">
                <p:toolbarGroup align="right">
                    <p:commandButton type="button" value="Detail:" />
                    <p:separator />
                </p:toolbarGroup>
            </p:growl>
        </h:form>

        <p:dataTable id="tbl" var="device" value="#{deviceBean.devices}"
            paginator="true" rows="7">
            <p:column>
                <f:facet name="header">
                    <h:outputText value="Name" />
                </f:facet>
                <h:outputText value="#{device.name}" />
            </p:column>

            <p:column>
                <f:facet name="header">
                    <h:outputText value="Email" />
                </f:facet>
                <h:outputText value="#{device.email}" />
            </p:column>


            <f:facet name="footer">  
            In total there are #{fn:length(deviceBean.devices)} devices.  
          </f:facet>

        </p:dataTable>

        <br />


    </h:form>

</f:view>

マネージド Bean クラスは次のとおりです。

@ManagedBean
@ViewScoped
public class SearchBean implements Serializable {

    HttpServletRequest request = (HttpServletRequest) (FacesContext.getCurrentInstance().getExternalContext().getRequest());
    private List<SearchModel> searchmodel = (List) request.getAttribute("search_attributes");

    public List<SearchModel> getSearchmodel() {
        return searchmodel;
    }

}

@BalusC : いいえ、Spring セキュリティ以外のものは使用していません。Spring で Bean を管理していません。それがどのように機能するかを説明できます。Spring セキュリティからのセキュリティ認証の後、コントロールは welcom.jsp ページに来ます。このページではused <jsp:forward page="/faces/index.xhtml"></jsp:forward、これは私のフォームです。フォームが送信されると、フォームデータを含むクラスを呼び出します。このクラス (Showsummary.java) はデータクエリを実行し、この req.setAttribute("search_attributes", searchattributes) のようにデータをキーと値のペアに入れます; 、その後、制御が再びマネー​​ジド Bean に渡され、「成功」が返されます。これは、上記の face-config で示した xhtml ファイルにマップされます。こちらです :

HttpServletRequest request = (HttpServletRequest) (FacesContext.getCurrentInstance().getExternalContext().getRequest());
    private List<SearchModel> searchmodel = (List) request.getAttribute("search_attributes");

    public List<SearchModel> getSearchmodel() {
        return searchmodel;
    }
4

0 に答える 0