SpringMVC请求与响应

请求映射

  • @RequestMapping:绑定请求地址与对应处理方法间的关系
@Controller
//为当前处理器中所有方法设定公共的访问路径前缀
@RequestMapping("/user")
public class UserController{
	//RequestMapping的值要与方法名保持一致
	@RequestMapping("/requestURL")
	public String requestURL{
		//跳转到page页面
		return "page.jsp";
	}
}
  • 常用属性
@RequestMapping(
	value="/requestURL2",//设置请求路径,与path属性·value属性相同
	method=RequestMethod.GET,//设定请求方式
	params="name",//设定请求参数条件
	headers="content-type=text/*",//设定请求消息头条件
	consumes="text/*",//用于指定可以接受的请求正文类型(MIME类型)
	produces="text/*" //用于指定可以生成的响应正文类型(MIME类型)
)
public String requestURL2(){
	return "/page.jsp";
}

响应

  • 转发(默认)
@RequestMapping("/showPage1")
public String showPage1(){
	System.out.println("user mvc controller is running ...");
	ruturn "forward:page.jsp";
}
  • 重定向
@RequestMapping("/showPage2")
public String showPage2(){
	System.out.println("user mvc controller is runing ...")
	return "redirect:page.jsp";
}
  • 页面访问的快捷设定
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/pages/"/>
	<!--后缀-->
	<property name="suffix" value=".jsp"/>
</bean>
public String showPage3(){
	//跳转到/WEB-INF/pages/page.jsp
	return "page" ;
}
  • 带数据跳转

    • 方式一:使用HttpServletRequest类型形参进行数据传递
    @RequestMapping("/show")
    public String show(HttpServletRequest request){
    	request.setAttribute("name","itheima");
    	return "page";
    }
    
    • 方式二:使用Modle
    @RequestMapping("/show2")
    public String show2(Model model){
    	model.addAttribute("name","itheima");
    	Book book = new Book();
    	book.setName("SpringMVC入门实战");
    	book.setPrice(66.6);
    	model.addAttribute("book",book);
    	return "page";
    }
    
    • 方式三:使用ModelAndView类型形参进行数据传递,将该对象作为返回值传递给调用者
    //使用ModelAndView形参传递参数,该对象还封装了页面信息
    @RequestMapping("/show3")
    public ModelAndView show3(ModelAndView modelAndView){
    	Book book = new Book();
    	boo.setName("SpringMVC入门");
    	book.setPrice(66.6);
    	//添加数据的方式,key和value
    	modleAndView.addObject("book",book);
    	modleAndView.addObject("name","Jockme");
    	//设置页面的方式,该方法最后一次执行的结果生效
    	modleAndView.setViewName("page");
    	return modelAndView;
    }
    
    
  • 返回Json数据

    • 方式一:基于response返回数据的简化格式,返回JSON数据
    	//使用jackson进行json数据格式化
    	@RequestMapping("/show3")
    	@RequestBoby
    	public String show3() throws JsonProcessingException{
    		Book book = new Book();
    		book.setName("SpringMVC入门");
    		book.setPrice(66.6);
    		ObjectMapper om = new ObjectMapper();
    		return om.writeValueAsString(book);
    	}
    
    • 方式二:使用SpringMVC提供的消息类型转换器将对象与集合数据自动转换为JSON数据
    	//使用SpringMVC注解驱动,对标注@ResponseBody注解的控制器方法进行	结果转换,由于返回值为引用类型,自动调用jackson提供的类型转换器进行格式转换
    			@RequestMapping("/show4")
    			@ResponseBoby
    				public Book show4(){
    					Book book = new Book();
    					book.setName("SpringMVC入门");
    					book.setPrice(66.6);
    				return book;
    				}
    

    需要手工添加信息类型转换器

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    	<property name="messageConverters">
    		<list>
    			<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
    		</list>
    	</property>
    </bean>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值