SpringMVC实现JSON数据的请求与响应

转载请注明出处:http://blog.csdn.net/ljmingcom304/article/details/50502886
本文出自:【梁敬明的博客】

1.前端控制器

  在实际开发中存在这样的业务需求,将表单中的数据转化为Json字符串提交给服务器,或者服务器将Json数据响应给客户端。这里通过SpringMVC实现JSON数据的请求和响应。首先在web.xml中配置前端控制器。




    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
        CharacterEncodingFilter
        /*
    

    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:springmvc.xml
        
    
    
        springmvc
        *.action
    

    
        index.jsp
    

2.配置文件

  然后在classpath路径下创建springmvc.xml配置文件(即src目录下),本次通过注解的方式进行开发,依次配置处理器映射器、处理器适配器以及视图解析器。




    

    
    

    
    
        
        
            
                
            
        
    

    
    
        
        
    

3.数据请求

  在student.jsp中将表单数据首先转换为Json对象,然后将Json对象转换为Json字符串异步提交到服务器端。

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
......

......

    
姓名:
年龄:
生日:
篮球: 足球: 排球:

4.数据响应 

  向服务器响应Json数据,通常用于实现服务器端与客户端APP间的数据传输,将数据封装到Map集合中,然后将Map集合转换为Json字符串响应给客户端APP。

public class Student implements Serializable {

    private static final long serialVersionUID = -8782478662852960938L;
    private String id;
    private String name;
    private Integer age;
    private Date birthday;
    private String[] hobbies;
    //get和set方法省略
}

@Controller
@RequestMapping("stu")
public class StudentAction {

    @RequestMapping("editstudent")
    public String editStudent(Model model) throws Exception {
        Student student = new Student();
        student.setId("1");
        student.setAge(16);
        student.setName("张三");
        student.setBirthday(new Date());
        model.addAttribute(student);
        return "/student/student";
    }

    @RequestMapping("submitstudent")
    public @ResponseBody
    Student submitStudent(@RequestBody Student student) {
        System.out.println(student.toString());
        return student;
    }

    //向APP响应Json数据
    @RequestMapping("getstudent")
    public @ResponseBody
    Map getStudent() {
        Map map = new LinkedHashMap();

        Student student = new Student();
        student.setId("1");
        student.setAge(13);
        student.setName("张三");
        String[] hobbies = { "足球", "篮球", "排球" };
        student.setHobbies(hobbies);

        map.put("data", student);
        map.put("status", 1);
        map.put("msg", "");
        return map;
    }

    //日期自动格式化
    @InitBinder
    public void initBinder(HttpServletRequest request,
            ServletRequestDataBinder binder) throws Exception {
        binder.registerCustomEditor(Date.class, new CustomDateEditor(
                new SimpleDateFormat("yyyy-MM-dd"), true));
    }
}

5.效果演示

  以下分别为数据请求与数据响应的演示效果。
  

SpringMVC实现JSON数据的请求与响应_第1张图片 SpringMVC实现JSON数据的请求与响应_第2张图片

  

你可能感兴趣的:(Java开发)