在struts 2中使用OGNL解析JSON对象
我有一门动作课,像在struts 2中使用OGNL解析JSON对象,json,jsp,struts2,ognl,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; } @Ov
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>
home.jsp
在jsp页面上,如果我写
,它将打印json数据。如果我写信
<s:property value="object.name"/>
或
或
它什么也不打印。
如何在jsp页面中解析json对象?您可以使用库函数
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>
$(文档).ready(函数(){
var obj=$.parseJSON(“”);
$(“名称”).val(对象名称);
$(“mobile”).val(obj.mobile);
});
此脚本将替换呈现JSP时填充的操作bean中的值(如果有)。文本字段应该相应地映射到动作bean。您不需要解析JSON,只需要从中检索值。假设您的
对象
是org.json.JSONObject
,您可以通过调用get
方法并将键作为字符串传递来从中获取值
<s:property value="object.get('name')"/>
你有json对象吗?为什么需要解析它?我得到的对象类似于“{name:lalit,mobile:99999999}”,并且它以相同的格式打印。我想分别打印姓名和手机。您的对象是什么类型的?是不是org.json.JSONObject
?json对象不是JavaBean,您不能像现在这样访问它。正如Aleksandr所说,您必须使用它自己的访问机制。不过,在服务器端转换它可能更容易。如果您只需要JavaScript,那么按照Roman的说法解析它会更好。
<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>
<s:property value="object.get('name')"/>