できるだけ簡潔にお伝えしますので、お付き合いください
"A.jsf" -> 管理対象 Bean : bean "#{bean.list}": B.jsf に移動します
<p:growl id="msgs" showDetail="true"/>
<h:form id="myform1" enctype="multipart/form-data">
<p:panel header="Upload" style="font-size: 11px;">
<h:panelGrid columns="2" cellpadding="10">
<h:outputLabel value="Drawing:" />
<p:fileUpload fileUploadListener="#{bean.handleFileUpload}" update="msgs" allowTypes="*.*;"/>
</h:panelGrid>
<p:commandButton ajax="false" immediate="true" id="back" value="Back" action="#{bean.list}"/>
<p:commandButton ajax="false" id="persist" value="Persist" action="#{bean.handleRevision}" />
</p:panel>
</h:form>
そうしてhandleFileUpload()
if(!upload){
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", "You do not have permission to upload.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
...
"B.jsf" -> マネージド Bean: bean2
...
<p:growl id="msgs" showDetail="true"/>
...
アップロードをクリックすると、「アップロードする権限がありません。」といううなり声のエラー メッセージが表示されます。しかし、「戻る」をクリックすると、B.jsf に移動し、「アップロードする権限がありません」というメッセージが表示されます。また。「戻る」をクリックすると、他のフォームリクエストをアップロードして送信すると、同じエラーメッセージが生成され、B.jsf に表示されます。「戻る」ボタンを空のフォームに配置する以外に、これを修正する方法はありますか?これは、2 つのボタンが並んでいるのではなく、互いの上に立っているためです。私はこれをしようとします:
FacesContext.getCurrentInstance().addMessage("tom", msg);
id="tom" を指定してコンポーネントに送信することを期待していたので、id=msgs を指定したうなり声はロードされませんが、うまくいきませんでした。upload
ボタンをクリックしたときにフラグをオンにしようとしましたが、ナビゲーションBack
を処理するメソッドが呼び出される前に Web フォームが要求されます。back
私が望んでいるほど簡潔ではありませんので、お詫び申し上げます:D