データベースで検索する必要があるビュー パラメータを持つ JSF2 ページがあります。そのエンティティのプロパティがページに表示されます。
ビューパラメータが欠落している/無効な場合を処理したいと思います
<f:metadata>
<f:viewParam name="id" value="#{fooBean.id}" />
<f:event type="preRenderView" listener="#{fooBean.init()}" />
</f:metadata>
コードは次のinit()
とおりです。
String msg = "";
if (id == null) {
msg = "Missing ID!";
}
else {
try {
entity = manager.find(id);
} catch (Exception e) {
msg = "No entity with id=" + id;
}
}
if (version == null) {
FacesUtils.addGlobalMessage(FacesMessage.SEVERITY_FATAL, msg);
FacesContext.getCurrentInstance().renderResponse();
}
今私の問題は、残りのページがまだレンダリングされており、アプリケーション サーバー ログにエンティティが null であるというエラーが表示されることです (したがって、一部の要素が正しくレンダリングされません)。エラーメッセージだけを表示したい。
POST
エラーページへのaが発行されるように、文字列を返す必要がありますか? ただし、その方法を選択した場合、カスタム エラー メッセージを追加するにはどうすればよいですか? 文字列をビュー パラメーターとして渡すことは、まったくお勧めできません。