添加到时,提交的表单值未在模型中更新

添加到时,提交的表单值未在模型中更新,第1张

概述我正在学习如何在jsf中使用ajax,我创建了一个实际上什么也没做的页面,一个填充了数字的输入文本,提交给服务器,使用提交的值调用该元素的setter,并显示getter的值. 这是简单bean的代码: @ManagedBean(name="helper",eager=true)public class HealthPlanHelper { String random = "1"; 我正在学习如何在Jsf中使用AJAX,我创建了一个实际上什么也没做的页面,一个填充了数字的输入文本,提交给服务器,使用提交的值调用该元素的setter,并显示getter的值.

这是简单bean的代码:

@ManagedBean(name="helper",eager=true)public class HealthPlanHelper {    String random = "1";    public voID setRandomize(String s){        random = s;                System.out.println("Calling setter");    }    public String getRandomize(){        return random;    }}

和Jsf页面:

<HTML xmlns="http://www.w3.org/1999/xhtml"  xmlns:h="http://java.sun.com/Jsf/HTML"  xmlns:f="http://java.sun.com/Jsf/core"><h:head></h:head><h:body>    <h:form>        <h:commandbutton action="nothing">            <f:AJAX render="num"/>        </h:commandbutton>        <h:inputText value="#{helper.randomize}" ID="num"/>    </h:form></h:body></HTML>

如您所见,这是一个请求范围的bean,每当我单击按钮时,服务器显示它创建了bean的实例,但是从不调用setter方法,因此,getter总是返回“1”作为值的串.

当我删除时,正常调用setter.

解决方法 < f:AJAX>默认情况下,只处理当前组件( read description of execute attribute).基本上,您的代码与此完全相同:
<h:form>    <h:commandbutton action="nothing">        <f:AJAX execute="@this" render="num"/>    </h:commandbutton>    <h:inputText value="#{helper.randomize}" ID="num"/></h:form>

在效果中,只有< h:commandbutton动作>已处理并且< h:inputText值> (以及任何其他输入字段,如果有的话)被完全忽略.

您需要更改execute属性以显式指定在AJAX请求期间要处理的组件或部分.通常,为了处理整个表单,使用了@form:

<h:form>    <h:commandbutton action="nothing">        <f:AJAX execute="@form" render="num"/>    </h:commandbutton>    <h:inputText value="#{helper.randomize}" ID="num"/></h:form>

也可以看看:

> Communication in JSF 2.0 – Ajax (asynchronous) POST form
> commandButton/commandLink/ajax action/listener method not invoked or input value not updated(第8点)
> Understanding PrimeFaces process/update and JSF f:ajax execute/render attributes

总结

以上是内存溢出为你收集整理的添加到时,提交的表单值未在模型中更新全部内容,希望文章能够帮你解决添加到时,提交的表单值未在模型中更新所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1107674.html

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

发表评论

登录后才能评论

评论列表(0条)

保存