当前位置:  开发笔记 > 编程语言 > 正文

JSF commandButton with immediate ="true"

如何解决《JSFcommandButtonwithimmediate="true"》经验,为你挑选了1个好方法。

我有一种情况,其中有一个selectOneMenu,其值绑定到支持bean.

我需要一个不更新模型值的按钮(这就是为什么它有immediate ="true"属性).

该按钮的action方法更改selectOneMenu绑定的值,但是当重新显示页面时,将显示原始值(已提交的值)而不是action方法中设置的值.

任何想法为什么会发生这种情况?

如果我没有足够好地解释这个问题,请告诉我.


编辑:这里要求的是有问题的源代码:

页码:


   
   
   

...


java代码:

private Person selectedPerson;

public String createNew() {
    log.debug("New created...");
    selectedPerson = null;
    bindings.getSelectPersonComponent().setSubmittedValue(null); //SOLUTION
    return "";
}

解决方案是在内衬标记解决方案 :)



1> ivans..:

由于在发布此问题后经常发生这种情况,我找到了答案:

这里详细解释了问题的原因:ClearInputComponents

问题是(如所解释的)模型值尚未更新,因此提交的输入仍在component.submittedValue字段中,如果不是空的话,则显示该字段.模型更新后,它通常会被清空.

第一个解决方案在我的情况下不起作用,因为视图中还有其他重要的状态,不能丢失.但第二个解决方案很有效:

component.setSubmittedValue(null);

这就是所需要的:它是一个额外的工作,因为组件必须绑定到某个bean,但不是那么糟糕.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有