【SpringMVC整合MyBatis】RequestMapping注解与controller方法返回值

简介:

我们讲解一下之前用的@RequestMapping注解和controller方法返回值


一、@RequestMapping注解作用
1.url映射
定义controller方法对应的url,进行处理器映射使用。
//商品查询列表
//@RequestMapping实现 对queryItems方法和url进行映射,一个方法对应一个url
//一般建议将url和方法写成一样
@RequestMapping("/queryItems")
public ModelAndView queryItems()throws Exception{
	//......
}

2.窄化请求映射
//商品的Controller
@Controller
//为了对url进行分类管理,可以在这里定义根路径,最终访问url是根路径+子路径
//比如:商品列表:/items/queryItems.action
@RequestMapping("items")
public class ItemsController {
	//......
}

限制http请求方法
出于安全性考虑,对http的链接进行方法限制。
//商品信息修改页面显示
//@RequestMapping("/editItems")
//限制http请求方法
@RequestMapping(value="/editItems",method={RequestMethod.POST})
public ModelAndView editItems()throws Exception{
	//......
}
如果限制请求为post方法,进行get请求,报错:


为了以后开发方便再改回来,让它支持GET和POST就不会出错了
@RequestMapping(value="/editItems",method={RequestMethod.POST,RequestMethod.GET})

二、controller方法返回值
1.返回ModelAndView
需要方法结束时,定义ModelAndView,将model和view分别进行设置。

2.返回string
如果controller方法返回string,

(1)表示返回逻辑视图名。
真正视图(jsp路径)=前缀+逻辑视图名+后缀
@RequestMapping(value="/editItems",method={RequestMethod.POST,RequestMethod.GET})
public String editItems(Model model)throws Exception{
		
	//调用service根据商品id查询商品信息
	ItemsCustom itemsCustom=itemsService.findItemsById(1);
		
	//通过形参中的model将model数据传到页面
	//相当于modelAndView.addObject方法
	model.addAttribute("itemsCustom",itemsCustom);
		
	return "items/editItems";
}

(2)redirect重定向
商品修改提交后,重定向到商品查询列表。
redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request(request无法共享)
//重定向到商品的查询列表
return "redirect:queryItems.action";

(3)forward页面转发
通过forward进行页面转发,浏览器地址栏url不变,request可以共享。
//页面转发
return "forward:queryItems.action";

3.返回void

在controller方法形参上可以定义request和response,使用request或response指定响应结果:
(1)使用request转向页面,如下:
request.getRequestDispatcher("页面路径").forward(request, response);

(1)也可以通过response页面重定向:
response.sendRedirect("url")

(3)也可以通过response指定响应结果,例如响应json数据如下:
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");

转载请注明出处:http://blog.csdn.net/acmman/article/details/47175961
相关文章
|
20天前
|
前端开发 Java Spring
Spring MVC 是如何对对象参数进行校验的
【6月更文挑战第4天】对象参数校验是使用 SpringMVC 时常用的功能,这篇文章尝试分析了,Spring 是如何实现这一功能的。
31 5
|
3天前
|
JSON 前端开发 Java
spring mvc Rest风格
spring mvc Rest风格
9 0
|
4天前
|
安全 前端开发 Java
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
12 1
|
7天前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
14 1
|
7天前
|
前端开发 Dubbo Java
spring面试题_spring mvc面试题_springboot面试题库
spring面试题_spring mvc面试题_springboot面试题库
|
9天前
|
JSON 前端开发 Java
【JavaEE进阶】 关于Spring MVC 响应
【JavaEE进阶】 关于Spring MVC 响应
15 3
|
10天前
|
缓存 NoSQL Java
在 SSM 架构(Spring + SpringMVC + MyBatis)中,可以通过 Spring 的注解式缓存来实现 Redis 缓存功能
【6月更文挑战第18天】在SSM(Spring+SpringMVC+MyBatis)中集成Redis缓存,涉及以下步骤:添加Spring Boot的`spring-boot-starter-data-redis`依赖;配置Redis连接池(如JedisPoolConfig)和连接工厂;在Service层使用`@Cacheable`注解标记缓存方法,指定缓存名和键生成策略;最后,在主配置类启用缓存注解。通过这些步骤,可以利用Spring的注解实现Redis缓存。
34 2
|
18天前
|
JSON 前端开发 Java
Spring MVC 级联对象参数校验
【6月更文挑战第6天】在 Spring MVC 的使用过程中,我们会发现很多非常符合直觉的功能特性,但往往我们会习惯这种「被照顾得很好」的开发方式,依靠直觉去判断很多功能特性的用法。
19 1
|
21天前
|
前端开发 Java 关系型数据库
在Spring3 MVC中五步配置集成注解方式Hibernate3
在Spring3 MVC中五步配置集成注解方式Hibernate3
26 3
|
21天前
|
JSON 前端开发 API
Apache HttpClient调用Spring3 MVC Restful Web API演示
Apache HttpClient调用Spring3 MVC Restful Web API演示
18 1