我有一个struts2动作,其中json结果类型当前正在工作。我能够成功添加静态“wrapPrefix”:
<action name="example_*" class="example.ExampleAction" method="{1}">
<result name="success" type="json">
<param name="wrapPrefix">test</param>
</result>
<result name="error" type="chain">jsonError</result>
</action>
正如预期的那样,example_list.action的JSON结果是(其中{...}表示原始结果JSON):
测试{...}
我希望能够使“wrapPrefix”动态化。无论有没有“解析”参数,我都尝试了以下内容:
<action name="example_*" class="example.ExampleAction" method="{1}">
<result name="success" type="json">
<param name="parse">true</param>
<param name="wrapPrefix">${jsonPrefix}</param>
</result>
<result name="error" type="chain">jsonError</result>
</action>
在ExampleAction中,我添加了getter:
public String getJsonPrefix() {
return "test";
}
但是,现在生成的JSON是:
$ {jsonPrefix}&amp;&amp; {...}
json结果类型是否可以在其参数中解析OGNL表达式?是否需要一些其他配置来创建效果?我想使用(或)现有的自动对象模型到JSON转换,而不是创建一个完整的自定义JSON字符串。
答案 0 :(得分:0)
更正:第二个(无效)JSON结果是:
$ {jsonPrefix} {...}
答案 1 :(得分:0)
json结果类型是否可以解析其参数中的OGNL表达式?
不,它无法解析任何参数中的OGNL表达式。您可以尝试对其进行子类化,但老实说,您可能更容易制作该类的本地副本并直接修改它,因为它不是为扩展而设计的。