java - 命令按钮在窗体之外 : Is it possible to Post a Form by an Id?

标签 java jsf primefaces

我有一个不在 Form-Tag 中的命令按钮 (PrimeFaces 3.0.1)。有没有办法通过它的 Id 或其他东西来引用表单,这样即使按钮不是该表单的子元素,它也可以发布表单? 我没有在规范中找到任何合适的...

Button 目前看起来像这样:

<p:commandButton value="#{messages['000.label.ok']}"
         oncomplete="w00001.hide()" type="submit" 
                 action="cancel"
         ajax="false" immediate="true" />

按下按钮后,JSF 将转到另一个页面,该页面由“取消”键映射。

谢谢!!!

最佳答案

编辑1 所以你要做的是提交一个表单,然后重定向。如前所述,commandButton 必须在表单内,如果你想将它用于提交,但它不必是相同 表单。您可以将第二个表单包裹在 commandButton 周围,并仍然使用它来提交第一个表单的值。

        <h:form id="form_test">
            <!-- values of this form will be submitted -->
        </h:form>
        <h:form>
            <p:commandButton value="cancel" action="#{yourBean.cancelFlow}"
                process="form_test @this" ajax="false" />
        </h:form>

YourBean.java 中的方法可能如下所示(假设您的 cancelpage.xhtml 在 your.package 包中)

public String cancelFlow() {
    // do something with form data

    return "/your/package/cancelpage?faces-redirect=true";
}

您还可以使用 FacesContext.getCurrentInstance().getExternalContext().redirect

以编程方式重定向

关于java - 命令按钮在窗体之外 : Is it possible to Post a Form by an Id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972982/

相关文章:

java - Android fragment oncreateview 被调用,但 View 未膨胀并且没有错误

java - 如果我的 arrayList 发生变化,如何监听?

java - 需要一些关于如何在 Java 中实现这一点的想法(解析字符串)

java - 如何将 try catch 放入事件方法以自定义 catch java

java - 验证失败后重置 selectOneMenu 表单值

java - 从命令行运行时,Eclipse 的 Java 编译器会生成不同的堆栈跟踪

java - 更改之前在 faces-config.xml 中初始化的 bean

css - 如何调整 p :commandButton 的大小

javascript - 在子窗口提交后如何在父窗口上重新加载文本

tomcat - PF 命令按钮在本地工作,但在部署的机器上不调用操作