【发布时间】:2016-04-28 09:01:56
【问题描述】:
我在 Struts 2 modelbean 中将一个布尔变量声明为 isABooleanValue,我可以通过在 jsp 中使用这个 modelbean.aBooleanValue 来查看该值。
getter 看起来像这样
public boolean isABooleanValue(){
return isABooleanValue;
}
setter 看起来像这样
public void setABooleanValue(boolean isABooleanValue){
this.isABooleanValue=isABooleanValue;
}
jsp代码
<s:property value="modelbean.aBooleanValue" />
任何人都可以解释如何从值堆栈中访问不正确的变量名。
编辑
解决方案
在 JSP 中使用属性是基于指定的 Getter 方法。 modelbean.aBooleanValue 调用模型 Bean 中定义的 isABooleanValue() 方法,因此不依赖于私有字段名称。
更新:- 虽然这似乎在旧版本的 OGNL 中有效,但与 Struts2 捆绑的 OGNL 版本 3.0.11 (OgnlRuntime) 可能会导致当字段名称的 getter 和 setter 不同时显示空白值。
【问题讨论】:
-
这有什么不妥之处?
-
我们能得到真正的代码sn-ps吗?你的二传手不会那样工作。
-
仍然不确定您的问题是什么。也许这个链接会对你有所帮助 - issues.apache.org/jira/browse/WW-4462.
-
你的变量是
private,在jsp中访问它时会调用getter。 -
@yeppe 您可以阅读它如何更好地工作stackoverflow.com/a/28110630/573032