用extjs4做tree,结合struts,spring 查询数据库后返回json数据,并显示数据树,应该怎么做?

用extjs4做tree,结合struts,spring 查询数据库后返回json数据,并显示数据树,应该怎么做?,第1张

很简单···你struts2是哪个版本的,高于2.16的,有一个struts2-json-plugin-2.1.8.jar的插件包,放入lib后;你要做现实菜单就必须在后台创建一个tree的class,内容是这样的

/**树节点ID*/

private String id

/**树节点名称*/

private String text

/**图标*/

private String cls

/**是否叶子*/

private boolean leaf

/**链接*/

private String href

/**链接指向*/

private String hrefTarget

/**是否展开*/

private boolean expandable

/**描述信息*/

private String description

然后将数据中的数据存入这个类的对象,再把得到的对象加入到一个java.util.List treeList中,然后在action里面将treeList转换成json,方法是这样的

JSONArray jsonArray = JSONArray.fromObject(treeList)

getResponse().setCharacterEncoding("utf-8")

getResponse().getWriter().println(jsonArray.toString())

,可能说的有点马虎,有不理解的可以再追问。

jsp中利用ajax传递的参数统一用request.getParameter('xxx')来获取参数

如果是一个json数组,那么解析对象的时候用JSONArray接收就可以了。

/**

* 从json数组中得到相应java数组

* JSONArray下的toArray()方法的使用

* @param str

* @return

*/

public static Object[] getJsonToArray(String str) {

JSONArray jsonArray = JSONArray.fromObject(str)

return jsonArray.toArray()

}

public static void main(String[] args) {

JSONArray jsonStrs = new JSONArray()

jsonStrs.add(0, "cat")

jsonStrs.add(1, "dog")

jsonStrs.add(2, "bird")

jsonStrs.add(3, "duck")

Object[] obj=getJsonToArray(jsonStrs.toString())

for(int i=0i<obj.lengthi++){

System.out.println(obj[i])

}

}

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 值。


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

原文地址:https://54852.com/sjk/10703979.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存