使用Struts2,但仅仅想返回json数据的方法
来源:互联网 发布:淘宝推广教程视频 编辑:程序博客网 时间:2024/05/17 09:11
按照常用的方法是将数据封装在结果中,然后使用setter和getter方法,再在struts.xml配置中设置相应的名字,设置返回结果为json。
感觉这样有些麻烦,还要引入json-default jar包,而且不美观,下面有一种可行的方法供大家参考
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><constant name="struts.i18n.encoding" value="UTF-8"/> <constant name="struts.devMode" value="true" /> <constant name="struts.action.extension" value="htm" /> <package name="userEssay" namespace="/UserEssay" extends="struts-default"> <action name="saveEssay" class="com.buryanddig.action.UserEssayAction" method="saveUserEssay"> </action> </package></struts>
这里没有了result配置,因为在action做了处理
import java.io.IOException;import java.io.PrintWriter;import java.util.Date;import java.util.HashMap;import org.jboss.logging.Logger;import com.buryanddig.provider.ServiceProvider;import com.buryanddig.service.UserEssayService;import com.buryanddig.service.impl.UserEssayServiceImpl;import com.buryanddig.user.entity.UserEssay;import com.buryanddig.util.RequestUtil;import com.google.gson.Gson;public class UserEssayAction extends BaseAction{/** * */private static final long serialVersionUID = 1L;private Logger log = Logger.getLogger(UserEssayAction.class);//自定义的从IOC容器中获取beanprivate UserEssayService userEssayService=(UserEssayService) ServiceProvider.getService(UserEssayService.SERVICE_NAME);private UserEssay userEssay;public void saveUserEssay() throws IOException {HashMap<String,Object> maps=new HashMap<String,Object>();//从链接中获取参数String ueEssay=RequestUtil.getString(request, "ueEssay");String ueRemark=RequestUtil.getString(request, "ueRemark");userEssay=new UserEssay();userEssay.setUeEssay(ueEssay);if(ueRemark!=null) {userEssay.setUeRemark(ueRemark);}Integer id=(int) (Math.random()*1000);userEssay.setUeId("testAction"+id.toString());userEssay.setUeUserId("testActionuserid");userEssay.setUeCreateTime(new Date());userEssayService.saveUserEssay(userEssay);maps.put("userEssay", userEssay);String json = new Gson().toJson(maps);PrintWriter writer = response.getWriter();writer.write(json);writer.flush();writer.close();}}
下面是ajax访问例子:
$.ajax({ url:'buryanddig/UserEssay/saveEssay.htm', type:'POST', //GET async:true, //或false,是否异步 data:params,//封装的参数 timeout:3000, //超时时间 dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text success:function(data){console.log(data); }, error:function(){ },});
打印的数据为返回的map的json字符串,如下:
这里就可以使用(.),比如data.userEssay进行数据的访问了
竟然漏了BaseAction的代码。。
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")public class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware {@SuppressWarnings("unused")protected HttpServletRequest request = null;@SuppressWarnings("unused")protected HttpServletResponse response = null;public void setServletRequest(HttpServletRequest request) {this.request = request;}public void setServletResponse(HttpServletResponse response) {this.response = response;}}
我们回想一下,那时天空还是湛蓝的,夜里的时候还可以看到漫天的星星。那时还没有struts的时候,我们是怎样完成java服务端和客户端的信息交互的?没错,就是servlet,我们使用servlet返回信息,而那个输出用的正是这个Printwriter,而action本质就是servlet啊。这样一想,是不是就想通了。。
阅读全文
0 0
- 使用Struts2,但仅仅想返回json数据的方法
- 使用Struts2返回JSON数据
- struts2返回json的方法
- ajax请求Struts2返回JSON数据方法
- struts2.5.1使用jQuery的ajax请求,返回json数据
- Struts2使用jquery ajax返回json数据
- Struts2使用注解方式返回Json数据
- struts2 返回json数据
- Struts2返回JSON数据
- Struts2返回JSON数据
- struts2返回json数据
- struts2返回json数据
- Struts2返回JSON数据
- struts2 返回json数据
- struts2 返回json数据
- struts2 返回json数据
- Struts2返回JSON数据
- struts2 返回json数据
- 自己动手写一个依赖注入框架
- Hibernate(四)一对多映射 补充三:双向多对一关系(学生-->班级)
- 欢迎使用CSDN-markdown编辑器
- spring生成代理对象的过程(AOP切面)
- WPF MVVM 绑定RadioButton数据
- 使用Struts2,但仅仅想返回json数据的方法
- java-随机数Math.random()
- 【effective java读书笔记】通用程序设计(二)
- 事件处理程序/事件侦听器
- OCM考试实验-Skillset1----Undo & Shared Server
- SpringMVC之组合注解@GetMapping
- C++线程安全的单例模式
- 出现 java.net.UnknowHostException: XXX.XXX.XXX 异常的原因及解决方法
- [转]VS中展开和折叠代码