`
txf2004
  • 浏览: 6875467 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JQuery+JSON+Struts返回一个List到页面

 
阅读更多

最近有人问我,怎么用JQuery+JSON+Struts实现,返回一个List到页面,前面我已经讲过了 一个简单的登陆的例子,那是返回一个字符串,

这个例子有些不同,因为你要返回的是一个列表,而列表中都是实体:在这个实例中点击公司名称,返回子公司列表,从Action中返回List

这就需要用到JSONArray 把原来的List 转化为JSONArray格式,我看到网上有相应的文章,但是相对麻烦,还有很多人自己写代码,实现普通的实体转化为JSon对象,

这样的人很厉害,但是有现成的为什么还自己动手呢,直接用JSON包中的不就行了嘛

准备:在你为整个项目添加了Struts之后(例子中是Struts2.1)

还要下载一个json-lib-2.4-jdk15.jar(我下载的是这个版本),添加到项目中

同时还要下载一个ezmorth-1.0.1.jar(我用的这个版本比较低,可以下载新的),否则就会出现 class net.sf.json.XXXX can't fount这样的错误,就是一个类找不到,把

这个包加入就没有问题了。

准备结束了,直接看代码就行了:

首先看show.jsp

01 <scripttype="text/javascript"src="<%=basePath%>/js/jquery-1.3.1.js">
02 </script>
03 <scripttype="text/javascript">
04 function GetTree(num)
05 {
06 var param={comNum:num};
07 $.ajax({ //采用Ajax方法
08 type:"post", //post方式
09 dataType:"json", //返回数据类型是JSON数据格式
10 data:param, //传递给Action的参数是param
11 url:"ReturnTree", //处理的Action名称
12 success:function(data){ //成功的处理函数
13
14 $.each(data,function(commentIndex, comment) { //遍历返回数组的每一个实体
15 alert(comment.sshortName); //输出实体的sshortName属性的值
16 })
17 },"json");
18 }
19 </script>
20 </head>
21 <body>
22 <bodyid="bodyTree">
23 <divid="cmsTree">
24 <ulid="treemenu3"class="treeview">
25 <li>
26 <strong>组织架构</strong>
27 <ahref="javascript:ddtreemenu.flatten('treemenu3', 'expand')"><strong>展开</strong>
28 </a>
29 <ahref="javascript:ddtreemenu.flatten('treemenu3', 'contact')"><strong>收缩</strong>
30 </a>
31 </li>
32 <li>
33
34 //在这里调用JS函数参数是公司的ID
35 <i></i><spanonclick="GetTree('<%=company.getCompanyNum()%>')"><%=company.getCompanynameC()%></span>
36 <ul>
37 <li>
38 <ahref="#">彰化</a>
39 </li>

Action的代码:

01 publicclassDLCompanyAction {
02
03 privateString comNum;//接受页面传递过来的公司ID参数
04
05 publicString getComNum() {
06 returncomNum;
07 }
08 publicvoidsetComNum(String comNum) {
09 this.comNum = comNum;
10 }
11
12 privateJSONArray resultTree;//我要返回给页面的List
13
14 publicJSONArray getResultTree() {
15 returnresultTree;
16 }
17 publicvoidsetResultTree(JSONArray resultTree) {
18 this.resultTree = resultTree;
19 }
20 publicString GetDLCTree()
21 {
22 dlc=newDLcompanyserviceImp();//dlc 是我项目中的一个service实现类,里面有一个方法就是下面的ReturnSubcompanyById,方法是根据给定的公司,返回公司的子公 司 列表
23 List<Subcompany> list=dlc.ReturnSbuCommpanyById(comNum);
24 JSONArray jsarry=newJSONArray();
25 jsarry=JSONArray.fromObject(list);//或者JSONArray jsarry=JSONArray.fromObject(list)
26 resultTree=jsarry;
27 return"success";
28 }
29
30 }

最后是Struts.xml的配置

1 <packagename="TreeDL"extends="json-default">
2 <actionname="ReturnTree"class="com.wit.action.DLCompanyAction"method="GetDLCTree">
3 <resulttype="json">
4 <paramname="root">resultTree</param>//resultTree是Action中的返回变量
5 </result>
6 </action>
7 </package>

一切OK,希望对你有帮助哦.

最近有人问我,怎么用JQuery+JSON+Struts实现,返回一个List到页面,前面我已经讲过了 一个简单的登陆的例子,那是返回一个字符串,

这个例子有些不同,因为你要返回的是一个列表,而列表中都是实体:在这个实例中点击公司名称,返回子公司列表,从Action中返回List

这就需要用到JSONArray 把原来的List 转化为JSONArray格式,我看到网上有相应的文章,但是相对麻烦,还有很多人自己写代码,实现普通的实体转化为JSon对象,

这样的人很厉害,但是有现成的为什么还自己动手呢,直接用JSON包中的不就行了嘛

准备:在你为整个项目添加了Struts之后(例子中是Struts2.1)

还要下载一个json-lib-2.4-jdk15.jar(我下载的是这个版本),添加到项目中

同时还要下载一个ezmorth-1.0.1.jar(我用的这个版本比较低,可以下载新的),否则就会出现 class net.sf.json.XXXX can't fount这样的错误,就是一个类找不到,把

这个包加入就没有问题了。

准备结束了,直接看代码就行了:

首先看show.jsp

01 <scripttype="text/javascript"src="<%=basePath%>/js/jquery-1.3.1.js">
02 </script>
03 <scripttype="text/javascript">
04 function GetTree(num)
05 {
06 var param={comNum:num};
07 $.ajax({ //采用Ajax方法
08 type:"post", //post方式
09 dataType:"json", //返回数据类型是JSON数据格式
10 data:param, //传递给Action的参数是param
11 url:"ReturnTree", //处理的Action名称
12 success:function(data){ //成功的处理函数
13
14 $.each(data,function(commentIndex, comment) { //遍历返回数组的每一个实体
15 alert(comment.sshortName); //输出实体的sshortName属性的值
16 })
17 },"json");
18 }
19 </script>
20 </head>
21 <body>
22 <bodyid="bodyTree">
23 <divid="cmsTree">
24 <ulid="treemenu3"class="treeview">
25 <li>
26 <strong>组织架构</strong>
27 <ahref="javascript:ddtreemenu.flatten('treemenu3', 'expand')"><strong>展开</strong>
28 </a>
29 <ahref="javascript:ddtreemenu.flatten('treemenu3', 'contact')"><strong>收缩</strong>
30 </a>
31 </li>
32 <li>
33
34 //在这里调用JS函数参数是公司的ID
35 <i></i><spanonclick="GetTree('<%=company.getCompanyNum()%>')"><%=company.getCompanynameC()%></span>
36 <ul>
37 <li>
38 <ahref="#">彰化</a>
39 </li>

Action的代码:

01 publicclassDLCompanyAction {
02
03 privateString comNum;//接受页面传递过来的公司ID参数
04
05 publicString getComNum() {
06 returncomNum;
07 }
08 publicvoidsetComNum(String comNum) {
09 this.comNum = comNum;
10 }
11
12 privateJSONArray resultTree;//我要返回给页面的List
13
14 publicJSONArray getResultTree() {
15 returnresultTree;
16 }
17 publicvoidsetResultTree(JSONArray resultTree) {
18 this.resultTree = resultTree;
19 }
20 publicString GetDLCTree()
21 {
22 dlc=newDLcompanyserviceImp();//dlc 是我项目中的一个service实现类,里面有一个方法就是下面的ReturnSubcompanyById,方法是根据给定的公司,返回公司的子公 司 列表
23 List<Subcompany> list=dlc.ReturnSbuCommpanyById(comNum);
24 JSONArray jsarry=newJSONArray();
25 jsarry=JSONArray.fromObject(list);//或者JSONArray jsarry=JSONArray.fromObject(list)
26 resultTree=jsarry;
27 return"success";
28 }
29
30 }

最后是Struts.xml的配置

1 <packagename="TreeDL"extends="json-default">
2 <actionname="ReturnTree"class="com.wit.action.DLCompanyAction"method="GetDLCTree">
3 <resulttype="json">
4 <paramname="root">resultTree</param>//resultTree是Action中的返回变量
5 </result>
6 </action>
7 </package>

一切OK,希望对你有帮助哦.

分享到:
评论

相关推荐

    Struts2 + jQuery+JSON 实现ajax

    1、将struts2的json插件加入web工程的lib,jsonplugin的下载地址:http://code.google.com/p/jsonplugin/downloads/list

    struts2+jquery+json+List

    NULL 博文链接:https://1029457926.iteye.com/blog/1992577

    struts+json+jquery练习小项目包括返回单个字符、对象、list、map

    这是struts2返回json并在页面展示的练习项目 对初学者来说有用 有4个小项目分别练习struts2返回单个字符、对象、数组、map

    Struts2下的jQueryAjax请求(Json)

    struts2下通过jquery的ajax从后台传json对象并展示在web页面上的一个小例子,所需的jar包请自己下载否则无法运行,所需的包包括struts的必须包,json的支持包和struts对json的支持包

    Struts2JQueryJson

    学习时做的一个struts2框架下前台页面获取后台json格式的数据,list,map等。页面包含多级联动页面,登陆验证页面,获取后台map,list格式的json格式数据的页面。分享给大家学习。

    使用struts2+Ajax+jquery验证用户名是否已被注册

    在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面的例子,我们只希望返回一个1和0有助于进行后续判断即可,没必要返回json类型,返回一个text字符串就可以了. regist.jsp(这里只提供[removed]部分): ...

    jQuery ajax请求struts action实现异步刷新

    这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换,第二种是采用goole的gson-2.1.jar来转换,大家可以...

    dangdang和smartstruts2.rar

    8、写一个struts.xml 包含use.xml 1)跳转到 /user/register_form.jsp &lt;result name="form"&gt;/user/register_form.jsp 完善action。 &lt;param name="inputName"&gt;image &lt;result name="success" type="...

    网上商城需求报告

    8、写一个struts.xml 包含use.xml 1)跳转到 /user/register_form.jsp &lt;result name="form"&gt;/user/register_form.jsp 完善action。 &lt;param name="inputName"&gt;image &lt;result name="success" type="...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包6

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包5

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包10

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包4

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包8

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包7

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包9

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics