SpringMVC入门笔记(三)

来源:互联网 发布:水暖工程预算表软件 编辑:程序博客网 时间:2024/06/04 23:27

RequestParam

value:参数名字,即入参的请求参数名字,如value=“studentid”表示请求的参数区中的名字为studentid的参数的值将传入;

required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报400错误码;

defaultValue:默认值,表示如果请求中没有同名参数时的默认值

定义如下:

public String userlist(@RequestParam(defaultValue="2",value="group",required=true) String groupid) {}

形参名称为groupid,但是这里使用value="group"限定参数名为group,所以页面传递参数的名必须为group。这里通过required=true限定groupid参数为必需传递,如果不传递则报400错误,由于使用了defaultvalue=”2”默认值即使不传group参数它的值为”2”,所以页面不传递group也不会报错,如果去掉defaultvalue=”2”且定义required=true则如果页面不传递group则会报错。


转发和重定向

转发

关键字forward

本类进行转发:

本类方法方法之间进行forward

转发方式:

方式一:return "forward:list.do";

<span style="color:#000000;">    //测试转发    @RequestMapping("forward")    public String forward(){                return "forward:list.do";    }</span>

方式二:return "forward/user/list.do"


<span style="color:#000000;">//测试转发@RequestMapping("forward")public String forward(){return "forward:/<span style="font-family:SimSun;">user</span>/list.do";}</span>


注意user根路径前面必须有/.

 

跨类进行转发:

转发方式:return "forward:/items/list.do";



重定向

关键字redirect

本类进行重定向

本类方法方法之间进行redirect

重定向方式:

方式一:return "redirect:list.do";

<span style="color:#000000;">//测试重定向@RequestMapping("redirect")public String redirect(){return "redirect:list.do";}</span>


方式二:return "redirect/user/list.do";


//测试重定向@RequestMapping("redirect")public String redirect(){return "redirect:/user/list.do";}

跨类进行重定向

转发方式:return"redirect:/items/list.do";

//测试重定向@RequestMapping("redirect")public String redirect(){return "redirect:/items/list.do";}


RequestBody/ResponseBody处理Json数据


@RequestBody把前台页面专递json格式数据强制转换为javaBean


@RequestBody在后台把JavaBean转换为json格式的数据返回页面

     

这两个注解不能直接使用,需要依赖Jackson的jar包



作用:

@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。

本例子应用:

@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象


例1:请求Json响应Json


1.添加处理json数据配置

<!-- 注解适配器 :添加json转换器--><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"><property name="messageConverters"><list><bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean></list></property></bean>

2.编写代码【请求json、返回json

@Controller@RequestMapping("json")public class MyJsonController {@RequestMapping("requestJson.do")public @ResponseBody User requestJson(Model model,@RequestBody User u){System.out.println("用户信息:"+u);return u;}}

3.编写页面ajax

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.9.1.min.js"></script><script type="text/javascript">//请求json,返回json function request_json(){var user = JSON.stringify({userName:"<span style="font-family:SimSun;">Keo</span>",age:21}); $.ajax({  type:'POST', url: '${pageContext.request.contextPath}/json/requestJson.do', contentType:'application/json;charset=utf-8', data:user, success : function(data){  alert(data.userName+":"+data.age); }  })  }</script></head><body><input type="button" onclick="request_json()" value="请求json,返回json"></body></html>

请求pojo响应json

1.添加处理json数据配置【同上】

2.编写Controller代码

@Controller@RequestMapping("json")public class MyJsonController {@RequestMapping("responseJson.do")public @ResponseBody User responseJson(User user){System.out.println(user);return user;}}

3.编写页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.9.1.min.js"></script><script type="text/javascript">//请求pojo,返回json function response_json(){ $.ajax({  type:'POST', url: '${pageContext.request.contextPath}/json/responseJson.do', data:'userName=张三&age=12', success : function(data){  alert(data.userName+":"+data.age); }  })  }</script></head><body><input type="button" onclick="response_json()" value="请求pojo,返回json"></body></html>


RequestBody和ResponseBody示例:

//接收json格式数据,使用RequestBody把json格式数据封装到User对象//返回User对象,使用responseBody把User对象转换成json对象@RequestMapping("requestJson")public @ResponseBody User requestJson(@RequestBody User user){System.out.println(user);return user;}


0 0
原创粉丝点击