Struts2中JSON结果类型的动态wrapPrefix

时间:2010-12-07 01:02:17

标签: struts2 jsonplugin

我有一个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字符串。

2 个答案:

答案 0 :(得分:0)

更正:第二个(无效)JSON结果是:

  

$ {jsonPrefix} {...}

答案 1 :(得分:0)

  

json结果类型是否可以解析其参数中的OGNL表达式?

不,它无法解析任何参数中的OGNL表达式。您可以尝试对其进行子类化,但老实说,您可能更容易制作该类的本地副本并直接修改它,因为它不是为扩展而设计的。