Struts2返回JSON对象Word文档格式.docx

上传人:b****6 文档编号:20698147 上传时间:2023-01-25 格式:DOCX 页数:30 大小:30.72KB
下载 相关 举报
Struts2返回JSON对象Word文档格式.docx_第1页
第1页 / 共30页
Struts2返回JSON对象Word文档格式.docx_第2页
第2页 / 共30页
Struts2返回JSON对象Word文档格式.docx_第3页
第3页 / 共30页
Struts2返回JSON对象Word文档格式.docx_第4页
第4页 / 共30页
Struts2返回JSON对象Word文档格式.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

Struts2返回JSON对象Word文档格式.docx

《Struts2返回JSON对象Word文档格式.docx》由会员分享,可在线阅读,更多相关《Struts2返回JSON对象Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。

Struts2返回JSON对象Word文档格式.docx

returnSUCCESS;

}

/*返回UserInfo对象*/

publicStringreturnUser(){

userInfo=newUserInfo();

userInfo.setUserId(10000);

userInfo.setUserName("

刘栋"

);

userInfo.setPassword("

123456"

/*返回List对象*/

publicStringreturnList(){

userInfosList=newArrayList<

UserInfo>

();

UserInfou1=newUserInfo();

u1.setUserId(10000);

u1.setUserName("

张三"

u1.setPassword("

111111"

UserInfou2=newUserInfo();

u2.setUserId(10001);

u2.setUserName("

李四"

u2.setPassword("

222222"

userInfosList.add(u1);

userInfosList.add(u2);

3)struts.xml(必须继承json-default、json-default继承自struts-default)

<

packagename="

default"

namespace="

/json"

extends="

json-default"

>

actionname="

returnMsg"

class="

com.testAction"

method="

resultname="

success"

type="

json"

<

paramname="

root"

validate<

/param>

/result>

/action>

returnUser"

includeProperties"

userInfo\.userId,userInfo\.userName,userInfo\.password

returnList"

userInfosList\[\d+\]\.userName,userInfosList\[\d+\]\.password

/package>

4、只要继承extends="

,resulttype设置成json之后,容器会把action的属性自动封装到一个json对象中(json拦截器来做)

5、includeProperties参数:

输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。

如:

输出UserInfo的所有属性及UserInfo的userName属性

resulttype="

userInfo.*,

userInfo\.userName<

6、excludeProperties参数:

输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同includeProperties

7、输出一个JSONList列表

其中userInfosList是action中的一个List类型的属性,userInfosList\[\d+\]\.userName表示,userInfosList中存储的对象0..end的userName属性(list中存储的对象必须有userName属性)。

8、为什么要用includeProperties或excludeProperties参数:

主要是为了过滤掉接口,pojo的set、list、其它对象等不需要的数据防止循环取其它关联对象或找不到接口。

如果不配置,默认是处理action中的所有属性,如果action中有接口注入,json拦截器可能找不到接口而返回不了结果,还有如果action中有一个对象,这个对象与好多对象都有关联,json拦截器会将相关联的所有对象的属性全部转换成json格式,如果其它对象有list、set,其返回结果相当庞大,有可能是死循环而无法返回。

如果不用<

或其他方式进行json数据过滤,通过debug你会发现前台返回的json字符串,是把action中的所有属性全部转化成json字符串返回给客户端(包括service接口、pojo所有属性及有关联的pojo。

有时候根本返回不了结果,也不报错,后台执行了,但前台执行不到callbackfunction,这主要是因为找不到接口或者关联的pojo太多,造成死循环),一般情况下用的最多的就是root、includeProperties和excludeNullProperties参数。

当然还有其他的方法,如给pojo的属性加json注解。

9、总结:

action中避免使用get开头的action方法,去掉action中的接口的get方法为json类型的result配置includeProperties,excludeProperties等参数.

 

另一篇资料:

本例程分为二步来写,第一步实现返回一个结果对象,第二步实现返回一个结果列表,首先来看下返回结果对象的实现.

我们需要先建立一个JavaBean为值对象,用来将用户的基本数据封装进去,该实体在结果对象和结果列表中都会使用到

Users.java代码如下:

Java代码

1.package 

com.jsontostruts2.vo;

 

2. 

3./** 

4. 

p>

5. 

创 

建 

人:

ChenTao 

6. 

7. 

创建日期:

2009-5-18 

下午05:

24:

48 

8. 

9. 

*/ 

10.public 

class 

Users 

11. 

12. 

private 

Integer 

userId;

13. 

14. 

String 

userName;

15. 

16. 

sex;

17. 

18. 

public 

Users() 

19. 

20. 

21. 

// 

get... 

set.... 

略...... 

22.} 

packagecom.jsontostruts2.vo;

/**

*<

*创建人:

ChenTao

*创建日期:

2009-5-18下午05:

48

*/

publicclassUsers{

privateIntegeruserId;

privateStringsex;

publicUsers(){

}

//get...set....略......

实现UserAction.java源码如下:

com.jsontostruts2.action;

3.import 

com.googlecode.jsonplugin.annotations.JSON;

4.import 

com.jsontostruts2.vo.Users;

5.import 

com.opensymphony.xwork2.ActionSupport;

7./** 

10. 

22:

50 

14.@SuppressWarnings("

serial"

) 

15.public 

UserAction 

extends 

ActionSupport 

users;

@JSON(name="

USER"

getUsers() 

return 

22. 

23. 

24. 

void 

setUsers(Users 

users) 

25. 

this.users 

26. 

27. 

28. 

@Override 

29. 

execute() 

throws 

Exception 

30. 

users 

new 

Users();

31. 

users.setUserId

(1);

32. 

users.setUserName("

ctojxzsycztao"

33. 

users.setSex("

男人"

34. 

SUCCESS;

35. 

36. 

37.} 

packagecom.jsontostruts2.action;

importcom.googlecode.jsonplugin.annotations.JSON;

importcom.jsontostruts2.vo.Users;

importcom.opensymphony.xwork2.ActionSupport;

50

@SuppressWarnings("

publicclassUserActionextendsActionSupport{

privateUsersusers;

@JSON(name="

publicUsersgetUsers(){

returnusers;

publicvoidsetUsers(Usersusers){

this.users=users;

@Override

publicStringexecute()throwsException{

users=newUsers();

users.setUserId

(1);

users.setUserName("

users.setSex("

returnSUCCESS;

接下来我们需要配置struts.xml文件,为了在现下面不再重复写该文件,这里我将结果对象和列表的请求控制一并贴上来,文件内容:

Xml代码

1.<

?

xml 

version="

1.0"

encoding="

UTF-8"

2.<

!

DOCTYPE 

struts 

PUBLIC 

3. 

"

-//Apache 

Software 

Foundation//DTD 

Struts 

Configuration 

2.0//EN"

http:

//struts.apache.org/dtds/struts-2.0.dtd"

6.<

struts>

-- 

注意这里扩展不再是 

struts-default,而是 

json-default 

-->

package 

name="

jsonManager"

extends="

返回结果类型为 

json 

action 

userJson"

class="

com.jsontostruts2.action.UserAction"

result 

type="

/>

该action在返回列表时添加进来的 

jsonlist"

com.jsontostruts2.action.UserListAction"

19.<

/struts>

xmlversion="

encoding="

DOCTYPEstrutsPUBLIC

"

-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"

--注意这里扩展不再是struts-default,而是json-default-->

<

--返回结果类型为json-->

<

--该action在返回列表时添加进来的-->

能后创建web.xml和userjson.jsp:

1.web.xml 

3.<

web-app 

2.5"

xmlns="

xmlns:

xsi="

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

filter>

filter-name>

Struts2<

/filter-name>

filter-class>

org.apache.struts2.dispatcher.FilterDispatcher 

/filter-class>

/filter>

filter-mapping>

url-pattern>

*.action<

/url-pattern>

/filter-mapping>

*.jsp<

welcome-file-list>

welcome-file>

index.jsp<

/welcome-file>

/welcome-file-list>

26.<

/web-app>

web.xml:

web-appversion="

xmlns="

xmlns:

xsi:

org.apache.struts2.dispatcher.FilterDispatcher

userjson.jsp:

Html代码

%@ 

page 

language="

java"

contentType="

text/html;

charset=UTF-8"

%>

HTML 

PUBLIC 

-//W3C//DTD 

4.01 

Transitional//EN"

html>

head>

title>

返回对象处理<

/title>

script 

javascript"

var 

xmlHttp 

false;

try{ 

ActiveXObject("

msxml2.XMLHTTP"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1