未提交JSF 2.0值



我正在努力让我的bean更新新的页面值。我在我的页面上有两个提交按钮,我切换哪一个显示基于布尔值为我的页面是在什么模式。当我的页面仅在更新(没有验证)时,我显示具有immediate= " true "的提交按钮。当页面处于进程模式(验证)时,我显示了没有immediate= " true "的提交按钮。我遇到的问题是,当我处于更新模式(没有验证)时,输入字段中的值没有在bean中设置。在这种模式下,我所要做的就是按原样保存页面并退出。不需要验证,因为该页上的信息还没有准备好处理或"真正使用"。也就是说,如果我的页面处于进程模式(验证),那么一切都按预期工作。值被提交并保存。

我还没有发布任何代码,因为我想做的事情没有什么特别的。我只是有一个指向简单getter/setter的值绑定。我的bean在@ViewScope中

我尝试使用BalusC在他的博文debug-jsf-lifecycle中的例子。在输入字段中设置immediate="true"对点击immediate="true"的提交按钮没有影响。尽管如此,我理解它的方式是uiccommand上的immediate= " true ",它告诉应用程序是否跳过验证。将其放在输入字段上只是为了更快地进行验证。我错过什么了吗?

任何想法?任何和所有的帮助,这是最感激的!

应用程序细节:
JSF 2.0.3
Tomcat 6.0.14

immediate="true"不打算禁用验证。它的目的是要么优先考虑验证,要么完全跳过输入的处理。另见文章底部的摘要。

您需要通过设置required="false"<f:validator disabled="true">来禁用验证。这里有一个例子,假设你有一个代表表单状态的boolean process属性:

<h:inputText value="#{bean.value1}" required="#{bean.process}" />
<h:inputText value="#{bean.value2}" required="#{bean.process}">
    <f:validator validatorId="someValidatorId" disabled="#{!bean.process}" />
</h:inputText>
...

这样,当processfalse时,这些字段就不是必需的,也不会被验证。

相关内容

  • 没有找到相关文章

最新更新