表单 – 为什么要显式地将process =“@ this”添加到p:commandButton以调用 *** 作?

表单 – 为什么要显式地将process =“@ this”添加到p:commandButton以调用 *** 作?,第1张

概述我知道我们需要显式地添加process =“@ this”以获取调用p:commandbutton动作,并且我也知道processface属性默认为@face. 由于进程默认为@form,因此该按钮也不会与表单中的其他元素一起处理,并且应该调用其 *** 作. 任何人都可以解释这背后的确切原因吗? Process @form表示commandLink / Button的当前形式 进程@这意味着comman 我知道我们需要显式地添加process =“@ this”以获取调用p:commandbutton动作,并且我也知道processface属性默认为@face.

由于进程默认为@form,因此该按钮也不会与表单中的其他元素一起处理,并且应该调用其 *** 作.

任何人都可以解释这背后的确切原因吗?

解决方法 Process @form表示commandlink / button的当前形式
进程@这意味着commandlink / button的当前组件.检查以下代码.

process.xhtml

<h:form ID="form1">    <h:inputText value="#{ProcessBean.ID}" ID="ID"/><br/>    <h:panelGroup ID="panel_1">        <h:inputText value="#{ProcessBean.name}" ID="name"/><br/>    </h:panelGroup>    <h:panelGroup ID="panel_2">        <h:inputText value="#{ProcessBean.address}"/>        <br/>        <p:commandbutton process="@form" value="Btm1" ID="button1" action="#{ProcessBean.show}"/><!-- Default -->        <p:commandbutton process="@this" value="Btm2" ID="button2" action="#{ProcessBean.show}"/>        <p:commandbutton process="@this form1:panel_1" value="Btm3" ID="button3" action="#{ProcessBean.show}"/>    </h:panelGroup></h:form>

ProcessBean.java

@ManagedBean(name = "ProcessBean")public class ProcessBean {    private String ID;    private String name;    private String address;    public String getID() {        return ID;    }    public voID setID(String ID) {        this.ID = ID;    }    public String getname() {        return name;    }    public voID setname(String name) {        this.name = name;    }    public String getAddress() {        return address;    }    public voID setAddress(String address) {        this.address = address;    }    public voID show() {        System.out.println(ID);        System.out.println(name);        System.out.println(address);    }}

让我们的用户输入输入框

001     -> IDJone    -> nameLondon  -> address

单击button1,将完成整个表单的所有JsF组件(例如:ID,name,address).输出将是:

001JoneLondon

单击button2,该过程将是其自身(例如:button2).没有ID,名称,地址的进程.输出将是:

nullnullnull

单击button3,所有JsF组件(例如:name)整个panel_1和button3将被处理.输出将是:

nullJonenull

不调用你的动作方法?调用之前可能存在验证或转换失败.

总结

以上是内存溢出为你收集整理的表单 – 为什么要显式地将process =“@ this”添加到p:commandButton以调用 *** 作?全部内容,希望文章能够帮你解决表单 – 为什么要显式地将process =“@ this”添加到p:commandButton以调用 *** 作?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1108654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存