JSF 1.2 + Richfaces 3.3 について質問があります。いくつかのナビゲーション ルールといくつかの ajax 関数を備えた Web アプリがあります。ある時点で、サーバー側でアクションを実行した後、アプリケーションがブラウザーで新しいタブを開き、xhtml ページを表示するようにしたいと考えています。そのためのタグを選択しました。それがどのように見えるかです:
<h:commandLink target="_blank"
action="#{sm_gestiondocumental_gestorUserAuditBean.actionCreateUserAuditManager}">
<h:graphicImage value="/images/sm_gestiondocumental/checklist.png"
alt="#{wmsg.VIEW_AUDITS}" title="#{wmsg.VIEW_AUDITS}"
styleClass="pic" />
</h:commandLink>
実行中のコードは次のとおりです。
private String createAuditManager(String className, String param, Object objectToAudit,
String auditFileName) {
AuditManagerBean amb = (AuditManagerBean) FacesUtils
.getManagedBean(BeanNames.AUDIT_MANAGER_BEAN);
if (amb == null) {
amb = new AuditManagerBean();
}
try {
amb.set_serviceLocator(this.get_serviceLocator());
} catch (Exception e) {
e.printStackTrace();
}
amb.set_AuditClassName(className);
amb.set_AuditId(param);
amb.set_AuditList(null);
amb.set_AuditFileName(auditFileName);
amb.set_ObjectToAudit(objectToAudit);
amb.set_AuditFilterInit(this._FilterInit);
amb.set_AuditFilterEnd(this._FilterEnd);
FacesUtils.setManagedBeanInSession(BeanNames.AUDIT_MANAGER_BEAN, amb);
return "showAudits";
}
public String actionCreateUserAuditManager() {
if (this._SelectedUser == null) {
FacesUtils.addErrorMessage("Error al listar usuarios");
return this.createAuditManager(CUsuarioRegistrado.NAME_FOR_AUDIT, "", null,
"Auditoría para " + this._SelectedUser);
}
return this.createAuditManager(CUsuarioRegistrado.NAME_FOR_AUDIT,
this._SelectedUser.toString(), null, "Auditoría para " + this._SelectedUser);
}
「showAudits」文字列を返しています。私のナビゲーション ルールによれば、この文字列は次のリンクを開く必要があります: auditInfo.xhtml。
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<description></description>
<from-outcome>sm_gestiondocumental_ListGrupoEntrega</from-outcome>
<to-view-id>/modules/sm_gestiondocumental/ges_tiposentrega/tiposGrupoList.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<description></description>
<from-outcome>sm_gestiondocumental_ListEmpresa</from-outcome>
<to-view-id>/modules/sm_gestiondocumental/ges_empresas/empresasList.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<description></description>
<from-outcome>sm_gestiondocumental_ListTrabajo</from-outcome>
<to-view-id>/modules/sm_gestiondocumental/ges_trabajos/trabajosList.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<description></description>
<from-outcome>sm_gestiondocumental_ListSeccion</from-outcome>
<to-view-id>/modules/sm_gestiondocumental/ges_secciones/seccionesList.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<description>
</description>
<from-outcome>showAudits</from-outcome>
<to-view-id>/modules/sm_gestiondocumental/auditInfo/auditInfo.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
ルールは適切に適用されていますが、アプリケーションのメイン パネルでページが開いています。つまり、新しいブラウザ タブが開いていますが、アプリケーション全体が内部の auditInfo.xhtml コンテンツとともに表示されています。 auditInfo.xhtml ページ。
org.ajax4jsf.Filter が呼び出された後にアプリケーション Bean の setContent() メソッドが呼び出されるため、フィルタリングの問題のようです。ただし、そのメソッドを呼び出したくありません。何か案は?