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;}
- SpringMVC入门笔记(三)
- springMVC入门(三)
- springMVC入门(三)
- SpringMVC入门笔记(二)
- SpringMVC入门笔记(一)
- SpringMVC学习笔记(三)
- SpringMVC学习笔记(三)
- SpringMVC入门(三) 注解的使用
- 工作笔记(三):SpringMVC入门实例--全注解方式
- 入门Demo---SpringMVC学习笔记(二)
- 入门Demo---SpringMVC学习笔记(二)
- SpringMVC入门学习笔记
- SpringMVC入门笔记(一)
- springmvc入门笔记
- springMVC学习笔记三(controller控制器)
- SpringMVC学习笔记(三) 切面详解
- SpringMVC 之模型数据笔记(三)
- SpringMVC学习笔记三
- JavaScript正则表达式贪婪模式与惰性模式
- 最全的Android Material Design支持库总结和介绍
- LDMOS简介
- 全志R16的TINAV2.0平台的cameratest程序精简版本V1.3(按g之后抓图到数组)
- Linux入门:进程ps、kill
- SpringMVC入门笔记(三)
- [Extjs modern] 如何将datepickerfield 提示的cancel和done改成中文
- [LeetCode] My Solutions in LeetCode Online Judge
- iOS - 线程(NSThread / NSOperation / GCD)
- Jquery.dataTable 分页表格
- Android 日期转换
- 设计模式六大原则
- Python访问本地Redis库的极简方式
- socket编程