私はSpring JSF統合を使用してプロジェクトを行っています特定の属性を持つ@RequestScope Beanを持っています。これはフォーム(検索アプリケーション)で送信された後、同じBeanのリスト属性がdb値から取り込まれ、データテーブルを使用して同じページに表示されます(送信時にajaxが適用されます/検索ボタン)。最初に検索したときは問題なく結果が得られますが、問題は、別のブラウザーページでページを更新または開くと、データテーブルがまだ最初のリクエストのデータであり、他のページからナビゲートしても同じページに戻ると、最初のリクエストページ/データが次のように表示されることですセッションスコープの代わりにリクエストスコープが機能していない場合。私はBeanとその作成を管理するためにSpringを使用し、フロントエンドページにはjsfを使用しています。これは、顔とスプリング注釈の混合に問題がある可能性があります。そうであれば、ここでの解決策は何ですか??他の Bean の自動配線を通じて DAO メソッドも使用しているためです。例えば
@ManagedBean(name="inputService")
@RequestScoped
public class InputService {
@Autowired
AdvancSearchDaoImpl Dao;
private String name;
private String bloodgroup;
private String dateofbirth;
List<Result> searchResults;
getter/setters of above attributes
public String outputService()
{
searchResults=Dao.getAdvacnceServiceSearch(name,bloodgroup,dateofbirth);
return "successful";
}
}
xhtml は次のとおりです。
<div >
<h:dataTable id="tbl" value="#{inputService.searchResults}" var="o" styleClass="display">
<h:column>
#{o.name}
</h:column>
<h:column>
#{o.dateofbirth}
</h:column>
<h:column>
#{o.bloodgroup}
</h:column>
</h:dataTable>
</div>
<h:form>
<table>
<tr><td>Full Name</td>
<td>
<h:inputText value="#{inputService.name}" styleClass="text-box" />
</td></tr>
<tr><td>Date of Birth</td>
<td>
<h:inputText value="#{inputService.dateofbirth}" />
</td></tr>
<tr><td>Blood group</td>
<td>
<h:inputText value="#{inputService.bloodgroup}" />
</td></tr>
<tr><td colspan="2" align="right">
<h:commandButton id="btnServiceSearch" value="Search" action="#{inputService.outputService}" styleClass="submitButton" >
<f:ajax execute="@form" render="tbl"></f:ajax>
</h:commandButton> </td> </tr>
</h:form>
すべての Bean はアプリケーション コンテキストで定義されます。