Struts 2三种方式实现Ajax
来源:互联网 发布:线切割锥度3b编程 编辑:程序博客网 时间:2024/06/05 07:46
Struts 2三种方式实现Ajax
版权声明:本文为博主原创文章,未经博主允许不得转载。
Ajax本质上和普通的HTTP请求是一样的,只不过普通的HTTP请求是给人看的,而Ajax请求是给JS代码去用的。
所以Ajax请求的页面一般比普通的HTTP请求的响应内容还要简单,可能是一个页面的一部分,也可能是xml、json等结构化的数据,还可能是一个简单的字符串。
所以,在Struts 2中使用Ajax,Action一般就不会调用一个jsp视图来显示了(如果Ajax请求内容是页面的一部分也可能调用jsp视图),而是通过一些其他的方式。
下面介绍了三种方法,用于Action实现Ajax请求。
方法1:依赖Servlet API
这里直接获取到Servlet中的HttpServletResponse对象,通过response的输出流写一个字符串,和不使用Struts 2直接用Servlet类似。
方法2:使用result type="stream"
在Struts 2的文档中推荐了一个比上一个方法更简单的方式,使用type为stream的result。通过这种方法,可以不依赖于Servlet API,所以单元测试会更方便。
方法3:struts 2 json插件
上面两种方法可以返回的内容很随意,可以是任何字符串。
在很多Ajax请求会用到json字符串,因为它可以很方便的转换成JavaScript对象。
使用struts2-json-plugin可以很方便的生成json(用上面的两种方法调用json工具生成json也是不错的选择,这样可以不用使用这个插件)。
此时需要添加一个jar文件:struts2-json-plugin-x.x.x.x.jar。
通过浏览器打开这个页面可以看到这个json:
{"age":22,"friends":["姚明","林丹"],"name":"xxg"}
其实struts2通过action返回json挺简单的,但是就是老要忘,所以索性写在博客上。好的,开始。
首先是引入必须的jar包:
struts2-json-plugin-2.3.24.jar
然后我们再写一个简单的action
package com.mz.action;import com.mz.entity.User;import com.opensymphony.xwork2.ActionSupport;public class JsonAction extends ActionSupport{ private User user; public String execute() { user = new User(); user.setId(123); user.setUsername("Irasel"); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
就是一个很简单的action,给user对象赋值然后传回然后返回success。
User类里面有两个属性,一个id一个username,以及对应的get和set方法。
主要是配置配置文件:
<!-- 配置一个返回json字符串的action --> <package name="resultJson" namespace="/" extends="json-default"> <action name="resultJson" class="com.mz.action.JsonAction"> <result name="success" type="json"> <!--root是ognl表达式的一部分不能更换 --> <param name="root">user</param> </result> </action> </package>
这里的root是ognl表达式的一个属性,不能换!不能换!不能换!(重要的事情说三遍)
启动tomcat,访问:http://localhost:8080/spring-struts/resultJson(这里的路径可能不一样)
如图所示:
这样子就算成功在前台返回json对象了,ok!
- Struts 2三种方式实现Ajax
- Struts 2三种方式实现Ajax
- Struts 2三种方式实现Ajax
- Ajax 在Struts 2中的三种实现方式
- dwr实现Reverse Ajax推送技术的三种方式
- AJAX实现文件下载的三种方式
- dwr实现Reverse Ajax推送技术的三种方式
- jquery实现Ajax请求的三种方式
- ajax的三种实现方式及解释json数据
- struts的三种转向方式
- 扩展struts的三种方式
- 扩展Struts的三种方式
- Spring整合Struts三种方式
- Struts整合Spring三种方式
- 创建struts action的三种方式
- mvc 2中使用Ajax的三种方式
- JQuery 的三种ajax提交方式
- JQuery 的三种ajax提交方式
- 常用代码html速查列表
- 用SparkCore统计变位词
- 安装python
- event_base_loop
- BeanUtils 工具 copyProperties 拷贝对象
- Struts 2三种方式实现Ajax
- 获取Java类中所有的方法和属性
- Linux 中的零拷贝技术
- Java建造者(Builder)模式
- 入门赛12
- Jquery选择器
- openSession 和getCurrentSession的区别
- 微信公众号 -- 上传图片返回url接口报"errcode":41005,"errmsg":"media data missing
- Eclipse配置自动提示