get request、parameters、ajaxrequestsをJSFと一緒に使用する一般的な方法は何ですか?
私が達成したいのは、idパラメーターをJSFページに渡し、指定されたパラメーターを持つエンティティーをデータベースから取得して、そのエンティティーをJSFページに表示することです。次に、エンティティにいくつかの変更を加えて、データベースにデータを戻します(ajax経由)。
変更をデータベースに戻すステップに固執しました。これが私がこれまでに持っているものです:
非常に単純なJSFページとコントローラー(ManagedBean)があります。
JSFページ
<h:body>
<h:form id="myForm">
<p:messages />
<h:panelGrid columns="3">
<h:outputLabel value="#{requestController.id}" />
<p:commandButton value="Update" action="#{requestController.updateEntity}" update="myForm" />
</h:panelGrid>
</h:form>
</h:body>
コントローラ
@Component("requestController")
@Scope("request")
public class RequestController {
@Value("#{request.getParameter('id')}")
private String id;
private String entity;
@PostConstruct
public void init() {
if(id == null || id.equals("")) {
entity = "Entity not found";
}
else if("1".equals(id)) {
entity = "FirstEntity";
}
else {
entity = "SecondEntity";
}
}
public String getEntity() {
return entity;
}
public void updateEntity() {
entity += "_updated";
}
public String getId() {
return id;
}
}
idパラメータを使用してJSFページを開くと、エンティティが正しく表示されます。しかし、更新ボタンをクリックすると、コントローラーが新たにインスタンス化され、idパラメーターがなくなります。
JSFでajaxリクエストと一緒にリクエストパラメータを処理する一般的な方法は何ですか?