mojarra の flash-scope に関する問題に関する多くのトピックを読みましたが、今まで、これらの煩わしい問題を完全に取り除くことができませんでした
「フラッシュの送信 Cookie を設定しようとした時点で、応答はすでにコミットされていました。フラッシュに保存された値は、次の要求では使用できません。」
多くの頭痛の種となるメッセージ。
カスタム Cookie やリクエスト パラメータなどの回避策について読みましたが、そのような基本的なことが長期間にわたって受け入れられたとおりに機能しない場合、気分がよくありません。
現在の環境:
- mojarra 2.2.13
- omnifaces 1.12.1
- tomcat 8.0.32
これが最新のモハラでまだ発生していることを誰かが確認できますか? 以前のmojarraバージョンでもこれらの問題がありました-機能する場合と機能しない場合があります。とにかく、メッセージはログイン後に一度だけ表示されますが、作成された Cookie「csfcfc」は削除されず、すべての要求で警告が発生するようになりました。
myfaces への切り替えは、現在、他の問題のためオプションではありません。
私の単純なケース、特に何も特別なことはありませんか?:
@ManagedBean
public class LoginBean implements Serializeable {
public String login(){
String nextPage = null;
//...
if (dataOk){
Messages.addFlashGlobalInfo("welcome");
nextPage = "/user/dashboard?faces-redirect=true";
}
return nextPage;
}
}
@ViewScoped
public class DashboardBean implements Serializeable {
@PostConstruct
protected void init(){
//....
initData();
}
}
mastertemplate.xhtml:
<h:body>
<f:view>
<div class="content">
<h:panelGroup id="messages">
<h:panelGroup layout="block" rendered="#{not empty facesContext.messageList}">
<o:messages globalOnly="true" escape="false" infoClass="alert-success alert-dismissable" />
</h:panelGroup>
</h:panelGroup>
<ui:insert name="content"/>
</div>
</f:view>
</h:body>
login.xhtml
<h:commandButton action="#{LoginBean.login}" id="btn-login" value="Login">
</h:commandButton>