json是一种数据格式,struts2中,通过引入struts2-json-plugin.jar。
编写Struts2的Action类:
public class LoginAction extends ActionSupport{
private String name;//普通属性
private Teacher teacher;//类属性
private List<Student> students;//集合
......省略get,set
public String returnName(){
name = "12312312";
return success;
}
public String returnTeacher(){
teacher = new Teacher("wang",29);
}
public String returnList(){
students = new ArrayList<Student>();
Student s1 = new Student("li",13);
Student s2 = new Student("zhang",13);
students .add(s1);
students .add(s2);
return success;
}
}
在struts.xml中配置action,这个地方是重点:
1.要继承json-default包
2.resulst 的type要设置为json
3.对于普通属性和普通类属性,直接<param name="includeProperties">属性名</param>指定要返回的属性。
但返回集合属性时,需要使用正则表达式了。
<package name="json" extends="json-default" >
<action name="loginAction" class="loginAction" method="xxx">
<result name="success" type="json">
<!------- includeProperties 指定包括的属性--------->
<param name="includeProperties">name</param>
</result>
</action>
</package>
<package name="json" extends="json-default" >
<action name="loginAction" class="loginAction" method="xxx">
<result name="success" type="json">
<!------- includeProperties 指定包括的属性--------->
<param name="includeProperties">teacher</param>
</result>
</action>
</package>
<action name="loginAction" class="loginAction" method="xxx">
<result name="success" type="json">
<!--如果返回的结果为集合,需要使用正则表达式来指定集合中实体的属性--->
<param name="includeProperties">
students\[\d+\]\.name,
styles\[\d+\]\.age
</param>
</result>
</action>
</package>
在页面中写js代码
function callback(data){
//在js中使用eval('(' + json字符串 +')'),来转换为json对象。一定要加上'(' 和')'
var jsonObj= eval( '(' + data+ ')' );
1.data为对应action中的普通属性
//如果data对应的是普通属性时,可以直接使用json对象.属性名的形式来使用该值
document.getElementById("show").innerHTML = "name:"+jsonObj.name;
2.data对应action中类属性
//如果打他对应的是类属性,可以使用json对象.类属性.属性,来使用该类属性的属性值。
document.getElementById("show").innerHTML = "name:"+jsonObj.teacher.name;
3.data对应是集合属性
//可以使用json对象.集合属性名,来得到该集合,然后遍历
for(var i = 0;i<list.styles.length;i++){
var style = list.styles[i];
select.append("<option value='"+ style.name +"'>"+style.name+"</option>");
}
分享到:
相关推荐
struts2与json整合,可进一步讨论
以JQUery方式提交表单 包含所需的jar包和JS文件
struts2-json-plugin,Struts JSON插件
该资源是使用struts2框架进行操作,返回json格式数据,前台通过ajax提交内容。
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
struts2整合json的插件struts2-json-plugin源码,不是jar包
JsonUtils.java 源代码. 博文链接:https://flym.iteye.com/blog/183562
如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择。... Struts2返回JSON有两种方式:1.使用Servlet的输出流写入JSON字符串;2.使用Struts2对JSON的扩展。
Struts2+Json+Android简单实现,StrutsJson为服务端代码,JSONDemo为Android端代码
struts2-json-plugin-2.2.3.1能用的包
JSON插件是Struts2的Ajax插件,通过利用JSON插件,允许开发者以非常灵活的方式开发AJAX应用。 struts2在配置文件中可以指定返回的结果集的类型为:json.
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
jquery和struts2结合使用的jar包
struts2自带的json转换 倒入jar文件 struts.xml中 <package ......extends="json-default" <result type="json"/>
Struts2和JSON交互的例子,非常容易理解,Struts2和JSON交互的例子,非常容易理解。
当自己做出来时,感觉挺简单的,但想起自己刚开始做不会那会儿,真的挺悲哀的啊,在网上也搜了半天也没搜出个123,最终经过苦战终于做出来的,文档中重要部分都标红提示了,在此分享给童鞋们
struts2所需的包和Struts2 json所需包,直接导进去就能用,很适合新手开发以及测试Struts2返回json格式的数据。
struts2返回json数据类型
一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从...