我的bean是viewscoped。我有一个简单的字符串属性与getter和setter。吸气剂工作正常(通过初始化属性检查),但不是设置者。在setter方法中,我使用每个传入参数构建一个Stringbuffer。Bean属性未更新
代码:
public String getParamval() {
return paramval;
}
public void setParamval(String paramval) {
logger.info("Incoming value:" + paramval);
pvals.append(paramval);
this.paramval = "VAL";
}
是不是错了?我已经在setter中进行了测试,看看是否传入了输入字符串,但显然该方法根本没有被调用/调用。在视图中使用#{}表示法。
查看:
<c:forEach items="${gdsiGeodataBean.requiredfields}" var="reqs">
<h:outputLabel value="#{reqs}:* " />
<pou:inputText value="#{gdsiGeodataBean.paramval}" required="true" requiredMessage="Input is required."/>
</c:forEach>
,为什么我会想要建立一个setter方法一个StringBuffer?因为输入文本是基于动态列表动态创建的。我只有一个要绑定的bean属性。
我知道我可以使用地图,但出于与上述相同的原因,我似乎无法在setter方法中更新地图值。这与我在此处询问的问题相关Updating a map value in a managed bean
向导组件位于对话框组件内的之内。这个表单里面和对话框里都没有其他的形式。在视图中,渲染的属性没有设置为false。我想我需要检查viewtree来确定这一点。 –
algone
2012-01-06 13:02:08
发生了一些奇怪的事情。我用标记替换了标记,现在setter工作。这是为什么? –
algone
2012-01-06 13:10:45
显然你依赖于视图渲染时间表达式。长话短说:http://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense – BalusC 2012-01-06 13:14:51