Я постараюсь быть максимально кратким, пожалуйста, оставайтесь со мной здесь
"A.jsf" -> Управляемый компонент: 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" -> управляемый компонент: bean2
...
<p:growl id="msgs" showDetail="true"/>
...
Когда я нажимаю кнопку загрузки,Дайте мне рычание с сообщением об ошибке «У вас нет прав на загрузку.», и это хорошо.Но затем, когда я нажимаю «Назад», который приведет меня к B.jsf, я вижу рычание «У вас нет разрешения на загрузку».снова.Кажется, что происходит, когда я нажимаю кнопку «Назад», я отправляю другой запрос формы для загрузки, который затем генерирует то же сообщение об ошибке, которое затем отображается в B.jsf.Есть ли способ исправить это, кроме помещения кнопки «Назад» в пустую форму, потому что теперь у меня есть две кнопки, стоящие друг над другом, а не рядом.Я пытаюсь сделать это:
FacesContext.getCurrentInstance().addMessage("tom", msg);
в надежде, что он отправит компоненту с id = "tom", поэтому рычание с id = msgs не получит загрузку, но не повезло.Я пытаюсь включить флаг upload
, когда нажимаю кнопку Back
, но веб-форму запрашивают до вызова метода, который обрабатывает навигацию back
.
Это не так кратко, как я хочу, поэтому я хочу извиниться за это: D