struts2 action中从数据库读出来的记录,怎么封装成json格式传给客户端啊

struts2 action中从数据库读出来的记录,怎么封装成json格式传给客户端啊,第1张

Ajax

json格式:

{key:value,key1:value1....}

如果返回的数据包含多个对象:

[{key1:value1...},{key2:value2....}]

struts2中的json格式数据传到页面的方法:

思路:后台action要把传递到页面的属性封装到map中,然后封装好的数据将会被Struts2转换成JSON字符串

1、action层的代码:

public class JsonAction extends ActionSupport{

private static final long serialVersionUID = 1L

private Map<String,Object>dataMap

private String key = "Just see see"

public String json() {

// dataMap中的数据将会被Struts2转换成JSON字符串,所以这里要先清空其中的数据

dataMap = new HashMap<String, Object>()

User user = new User()

user.setName("张三")

user.setPassword("123")

dataMap.put("user", user)

// 放入一个是否 *** 作成功的标识

dataMap.put("success", true)

// 返回结果

return SUCCESS

}

public Map<String, Object>getDataMap() {

return dataMap

}

//设置key属性不作为json的内容返回

@JSON(serialize=false)

public String getKey() {

return key

}

}

2、配置aciton,在struts.xml中的写法如下:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<package name="json" extends="struts-default,json-default" >

<action name="json" class="json.JsonAction" method="json">

<result type="json">

<!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->

<param name="root">dataMap</param>

</result>

</action>

</package>

</struts>

3、最终的输出结果:

{"success":true,"user":{"name":"张三","password":"123"}}

4、用js来解析:使用现成的JSON.parse() 来解析即可。

JSON.parse() 方法可以将一个 JSON 字符串解析成为一个 JavaScript 值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10823134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存