【发布时间】:2016-12-20 17:53:21
【问题描述】:
我正在开发一个帮助用户创建新帐户的 JSF 项目。在一个页面中,我有两个单选按钮;
<h:selectOneRadio value="#{accountBeans.radioData}" onClick="Common.showRadioButton(value)">
<f:selectItem itemValue="1" itemLabel="Item 1" />
<f:selectItem itemValue="2" itemLabel="Item 2" />
</h:selectOneRadio>
onclick 将转到 Common.js 中定义的 javascript 函数。 accountBeans.java 中给出了getter 和setter 方法来设置bean 中的值;
public String radioData = null;
public String getRadioData() {
return radiodata;
}
public void setRadioData(String radioData) {
this.radioData = radioData;
}
当用户第一次登陆这个页面时,两个单选按钮都应该被取消选中。为此,我在 accountBeans 中创建了一个方法 reinitilize,它将 radioData 的值重置为 null,而不是使用之前存储的值。
我在使用这种方法时遇到的问题是,当用户在选择单选按钮后导航到其他页面并返回到同一页面时,值会被重置。在创建帐户之前,我需要保留用户选择的值。
如果我不使用 reinitialize 方法来重置存储的值,那么在创建新帐户时,之前存储的值仍然会保留,这是一个问题。谁能告诉我,如何在创建帐户之前保留 radioData 值,然后在创建新帐户时将 radioData 值再次设为空。
【问题讨论】:
-
一个java bean标准的一部分是使用封装,为什么你的属性是
public?还请添加您正在使用的 bean 范围。我想您正在使用 JSF ManagedBeans 吗?因为 CDI 只会给你一个关于公共领域的错误 -
是的,我正在使用 JSF 托管 Bean。它不会为公共字段抛出任何错误。
-
请出示
Common.showradio...的代码 -
我在其中定义了一个 switch case,它给出了 case "1": 和 case "2"
-
您的 bean 是 View 还是 Request 范围?在每一页..
标签: javascript java jsf dojo