Есть ли способ не отправлять целую веб-форму при нажатии кнопки?

Я постараюсь быть максимально кратким, пожалуйста останься со мной здесь

"A.jsf" -> управляемый боб: бин "# {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 не получит нагрузки, но не повезло. Я пытаюсь включить флаг загрузки , когда нажимаю кнопку Назад , но веб-форму запрашивают до вызова метода, который обрабатывает навигацию назад .

Это не так кратко, как мне бы хотелось, поэтому я хочу извиниться за это: D

6
задан Pascal Thivent 26 August 2010 в 01:20
поделиться