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ません...したがって、これはまったく役に立ちませんでした...