データテーブル内のJSFcommandLinkに問題があります。動作させることができません。
Beanはリクエストスコープにあり、アクションクラスもリクエストスコープにあります。これが私のデータテーブルです:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML 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">
<f:view contentType="text/html">
<ui:include src="../blocks/head.xhtml"/>
<body>
<ui:include src="../blocks/header.xhtml"/>
<div class="content_table" align="center">
<h:dataTable headerClass="data_table_header"
cellpadding="10"
rowClasses="dataTableRow1,dataTableRow2"
value="#{searchBean.searchResult.corpusInfos}"
var="corpusInfo">
<h:column>
<f:facet name="header">
#{msg['application.corpusInfoTable.corpusPart']}
</f:facet>
#{corpusInfo.corpusPart}
</h:column>
<h:column>
<f:facet name="header">
#{msg['application.corpusInfoTable.totalWords']}
</f:facet>
#{corpusInfo.allWordsCount}
</h:column>
<h:column>
<f:facet name="header">
#{msg['application.corpusInfoTable.request']}
</f:facet>
<h:form id="idSimpleSearchForm">
<h:commandLink id="idSimpleSearchFromTable" action="#{searchAction.processSearch}"
value="#{corpusInfo.searchTerm}">
<f:setPropertyActionListener value="50" target="#{searchBean.lineLength}"/>
<f:setPropertyActionListener value="simpleSearch" target="#{searchBean.searchType}"/>
<f:ajax execute="@form"/>
</h:commandLink>
</h:form>
</h:column>
<h:column>
<f:facet name="header">
#{msg['application.corpusInfoTable.usageNumber']}
</f:facet>
#{corpusInfo.usageCount}
</h:column>
<h:column>
<f:facet name="header">
#{msg['application.corpusInfoTable.analyzedSourcesCount']}
</f:facet>
#{corpusInfo.analyzedSourcesCount}
</h:column>
</h:dataTable>
</div>
<ui:include src="../blocks/footer.xhtml"/>
</body>
</f:view>
</HTML>
アクションクラスとBeanのスコープをセッションまたはビューに変更しようとしました。失敗。生成されたリンクをクリックすると、ページが更新されます。
このテーブルは、以前のリクエストから生成されます。最初のページにはいくつかのフィールドとアクションボタンが含まれています。アクションボタンがクリックされると、アクションクラスに到達すると、必要なデータがBeanクラスに設定され、このデータテーブルがある次のxhtmlページに渡されます。テーブルのすべての値が正しい順序で表示されます。アクションリンクを除いてすべて問題ありません。
これを解決する方法について何かアイデアはありますか?
編集:
データテーブルがあるすべてのページを入れました。たぶん他のタグに何か問題がありますか?多分彼らは見方を変えますか?このページへのナビゲーションは、次のようにfaces-config.xmlファイルに書き込まれます。
<navigation-rule>
<navigation-case>
<from-action>#{searchAction.processSearch}</from-action>
<from-outcome>success_simple_search</from-outcome>
<to-view-id>/views/concordance/concordance.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{searchAction.processSearch}</from-action>
<from-outcome>failure</from-outcome>
<to-view-id>/views/error/unexpectedError.xhtml</to-view-id>
</navigation-case>
</navigation-rule>