【发布时间】:2017-05-18 10:24:23
【问题描述】:
我的屏幕是这样的
问题是,当我按下重置按钮时,代码输入字段没有按预期清除。
jsf如下:
<h:form id="form1">
<h:inputText id="code" value="#{MyBean.data.code}" />
<a4j:commandButton immediate="true"
action="#{MyBean.clear}" render="form1" update="@form">
</a4j:commandButton>
<h:outputText value="#{session.lastAccessedTime}">
<f:convertDateTime pattern="HH:mm:ss.SSS" type="date" />
</h:outputText>
</h:form>
bean代码如下:
public class MyBean {
DataInnerClass data = new DataInnerClass();
//getter and setter for data
public class DataInnerClass {
private String code;
//getter and setter for code
public DataInnerClass() {
super();
}
}
public void clear() {
data = new DataInnerClass();
Logger.getLogger( MyBean.class.getName() ).log(Level.SEVERE, "data.code="+data.code);
//logs data.code=null
}
}
当我按下重置按钮时,日志显示字段code 的值已变为空(不再是“ZZ”);我也知道屏幕刷新成功,因为我已经显示了当前时间,每次点击后都会更新。因此,支持 bean 属性发生变化,屏幕刷新,输入字段仍然保持相同的值。你知道为什么会这样吗?
【问题讨论】: