我面临commandButton的问题,它只有在类型为submit时才起作用。有没有人可以看一下,让我知道是否有解决办法?下面的代码非常简单,并有足够的建议来说明我需要什么。方法test()未执行。方法runSubmit已成功执行。
我需要测试方法在没有提交的情况下执行,因为原始页面确实在提交期间执行了验证,test()方法必须在没有提交的情况下执行,因为这是提交之前的一个初步操作。
我正在使用PrimeFaces 4.0、JDK 7、Tomcat 6和JSF 2.0(Apache),但是我认为它也发生在Mojarra。
SESSION:
package com.andre.bean;
public class AndreBean {
public void runSubmit() {
System.out.println("Submit executed");
}
public String test() {
System.out.println("Not submit executed");
return "true";
}
}
XHTML
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:form id="test">
<p:commandButton id="ns" value="not submit" type="button" action="#{andreBean.test}" ajax="false"></p:commandButton>
<p:commandButton id="s" value="submit" action="#{andreBean.runSubmit}"></p:commandButton>
</h:form>
</html>
非常感谢你,安德烈
请检查您与bean的绑定。
bean字段应为String或非原始字段。
有时,解决方案只是简单地添加immediate=“true”
,它改变了JSF生命周期中触发bean操作的点。
你得到的是正确的行为。在PrimeFaces中,类型="按钮"的按钮与基本超文本标记语言一样工作——它不会导致任何请求。正如PrimeFaces用户指南所说:
按钮用于执行自定义javascript,而不会导致ajax/非ajax请求。要创建按钮,请将类型设置为“按钮”。
<p:commandButton type="button" value="Alert" onclick="alert('Prime')" />
如果您想“与”bean交谈,您需要使用type=“submit”(这是p:commandButton中的默认值)。然而与HTML中的提交按钮行为相反,在PrimeFaces中,这种提交不会强制重定向到新页面,但所有通信都将由底层AJAX请求处理。
因此,只有第二个按钮将执行bean的方法:
<p:commandButton id="s" value="submit" action="#{andreBean.runSubmit}" />
如果您不想将所有表单发送到bean,可以限制使用p:commandButton的“process”属性处理的组件的范围:
<h:form id="test">
<p:inputText value="#{andreBean.value}"/>
<p:commandButton id="s" value="submit" action="#{andreBean.runSubmit}" process="@this" />
</h:form>
使用以下bean,您将看到不同之处:
public class AndreBean {
private String value;
public void runSubmit() {
System.out.println("Submit executed");
}
public String getValue() {
System.out.println("getValue");
return value;
}
public void setValue(String value) {
System.out.println("setValue: " + value);
this.value = value;
}
}
如果您不限制console中执行的组件,则会得到:
getValue
setValue: foobar
Submit executed
...组件仅限于process=“@this”时,您只能获得:
Submit executed
希望有帮助。
我想使用一个p:对话框,其中包含一些commandbutton,但我不能从命令按钮调用我的bean,也不知道为什么。 在xhtml页面上有两个表单,第一个表单包含一些内容,如面板、panelgrids、按钮等。第二个表单只包含我的对话框。 我的beanHandler(beanHandler)是ViewAccessScoped。此xhtml页面上的所有内容都在工作,只有我的p:面板不工作 如果我使用
我在21点程序中无法让点击按钮正常工作。我尝试为setOnAction块中的hit按钮以及lambda编程操作,但是我得到了一个关于变量不是最终变量的错误。所以,我试过这样做,但我不认为我的变量会继续。这可能很简单。如果可以的话,请帮忙。谢谢
我正在使用PF 5.2作为web应用程序。我想使用notificationBar驻留一些数据输入,并使用commandButton将这些输入数据触发到支持bean。因此,我在notificationBar中放置了一个commandButton,但actionListener没有调用backingbean方法。CommandButton的id为“filterBtn”。 这个xhtml页面代码如下所示
https://www . n11 . com/telefon-ve-akesuarlari/CEP-telefon u-akesuarlari 在这个网站中,我尝试点击(下一页按钮) 我想赶上这条线 我正在程序中编写此代码 我的问题是关于这个问题,它不起作用
我有一个问题使添加到购物车按钮工作。不确定是哪一部分代码导致了这个问题。但是,问题的链接是:https://barkerbespoke.com/collections/tie-collection/products/black-wool 你有什么建议?
问题内容: 当我单击一个按钮时,我想运行多种功能。例如,我希望我的按钮看起来像 当我执行此语句时,出现错误,因为我无法两次为参数分配内容。如何使命令执行多个功能。 问题答案: 您可以创建一个用于组合功能的通用功能,看起来可能像这样: 然后,您可以像这样创建按钮: