Struts 2 ApplicationResources.properties错误

时间:2012-07-11 17:11:41

标签: struts2

我正在为我的应用程序使用struts2。

<s:submit cssClass="button" key="btn.search" tabindex="12" />

在ApplicationResources.properties文件中

btn.search = Go

我在提交页面时遇到错误,

OgnlValueStac W com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn 
  Error setting expression 'btn.search' with value '[Ljava.lang.String;@14f414f4'
  ognl.OgnlException: target is null for setProperty(null, "search", [Ljava.lang.String;@14f414f4)

问题是什么?

2 个答案:

答案 0 :(得分:0)

key作为参数提交,OGNL正尝试从btn获取名为ValueStack的对象,通过调用getBtn().setSearch("");来设置参数,但是,由于堆栈中没有btn对象,因此发生了空目标异常。

这应该有效:

<s:set name="buttonText"><s:text name="btn.search"/></s:set>
<s:submit cssClass="button" value="%{#buttonText}" tabindex="12"/>

或者,正如Dave在他的回答中指出的那样,如果你的行动类扩展ActionSupport,这也应该有效:

<s:submit cssClass="button" value="%{getText('btn.search')}" tabindex="12"/>

答案 1 :(得分:0)

key属性是 namevalue属性的简写。

使用key表示您假设一个名为btn.search的属性。

可能为文本属性查找的结果设置值时,您也可以直接使用它:

<s:submit value="%{getText('btn.search')}" />