OnPAGE A
は、データベースからのデータを含むテーブルです。
行をクリックすると、ページが転送さPAGE B
れ、コントローラにエンティティが挿入されます
@DataModelSelection(value = ENTITY_LIST_NAME)
@Out(value = ENTITY_NAME, scope = ScopeType.CONVERSATION, required = false)
private Entity entity;
これは正常に機能します。
問題は、ユーザーが のブックマークを使用しているように見えるため、アクセスしPAGE B
たことがないためエンティティが挿入されないことです。PAGE A
したがって、彼らは常にこの例外をスローします
@In attribute requires non-null value
@In attribute requires non-null value
すべての例外をキャッチしてユーザーをPAGE C
(startpage) に転送するグローバル関数はありますか?
(もちろん、この例外をキャッチすることはできますPAGE B
が、これは 1 つのページだけでなく、すべてのページでこの例外を処理したい)
使用している: jboss5 + jsf 1.2 + seam 2
EmirCalabuch の回答後の更新:
EmirCalabuch からのヒントも試しました。
<page conversation-required="true" no-conversation-view-id="PageC.xhtml" />
しかし、問題は、この時点で会話が生きていることです。この転送はpageC
決して起こりません...
私はまたpage.xml
、このページのようなものを作りました:
<action execute="#{controller.checkIfEntityIsSet()}" />
<navigation>
<rule if-outcome="HOME">
<redirect
view-id="/pages/home.xhtml"
/>
</rule>
</navigation>
そして私の中で私Controller.java
はこのようなものを持っています:
public String checkIfEntityIsSet(){
if(getEntity() == null){
return "HOME";
}
return "";
}
が前にスローされるため、これcheckIfEntityIsSet()
は決して呼び出され@In attribute requires non-null value
ません...したがって、これはまったく役に立ちませんでした...