在struts 2中使用OGNL进行JSON对象解析

时间:2014-03-01 05:13:44

标签: json jsp struts2 ognl

我有一个像

这样的动作类
public class DataProcessor extends ActionSupport{

    private JSONObject object;

    public JSONObject getObject() {
        return object;
    }

    public void setObject(JSONObject object) {
        this.object = object;
    }

    @Override
    public String execute() throws Exception {
        .......
        return SUCCESS;
    }
} 

我的XML映射就像

<package name="default" extends="struts-default" namespace="/">
   <action name="process" class="com.demo.DataProcessor">
      <result type="success">home.jsp</result>
   </action>
</package>

在jsp页面上如果我写<s:property value="object"/>它会打印json数据。如果我写的话

<s:property value="object.name"/>

<s:property value="#object.name"/>

<s:property value="${#object.name}"/>  it is printing nothing.

如何解析jsp页面中的json对象?

2 个答案:

答案 0 :(得分:1)

您无需解析需要从中检索值的JSON。假设您的objectorg.json.JSONObject,您可以通过调用get方法并将密钥作为字符串传递来从中获取价值。

<s:property value="object.get('name')"/>

答案 1 :(得分:0)

您可以使用库函数parseJSON来解析JSON,就像在此示例中一样

<s:textfield id="name" name="name"/>
<s:textfield id="mobile" name="mobile"/>    
<script type="text/javascript">
  $(document).ready(function() {
    var obj = $.parseJSON('<s:property value="object"/>');
    $("name").val(obj.name);
    $("mobile").val(obj.mobile);
  });
</script>

此脚本将替换呈现JSP时填充的操作bean中的值(如果有)。文本字段应相应地映射到操作bean。