SpringMVC注解开发
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC注解开发相关的知识,希望对你有一定的参考价值。
在SpringMVC配置文件中 配置注解开发设置
配置注解需要扫描的位置
<context:component-scan base-package="org.djd.Controller"/>
配置处理器映射
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
配置注解适配器 调用被注解的controller
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
处理器映射和注解适配器 注册一行代替
<mvc:annotation-driven/>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<!--配置注解扫描位置-->
<context:component-scan base-package="org.djd.Controller"/>
<!--等同以下注册-->
<mvc:annotation-driven/>
<!--<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>-->
<!--<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>-->
<!--配置springmvc视图-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
@Controller
将Controller类注解 相当于Spring配置文件bean
@RequestMapping
配置在class上可以用于自定义访问根路径
其次配置在方法上
@RequestMapping(“list”)
@RequestMapping(“/list.do”)
@RequestMapping(value=”/list.do”)
@RequestMapping(value = "/list3",method=RequestMethod.POST) 只能使用POST方法
@RequestMapping(value = "/list3",method=RequestMethod.Get) 只能使用GET方法
url 映射模板 @PathVariable
如果使用url传参
可以使用?追加到url之后
也可以使用匹配 使用@PathVariable注解方法的参数
<a href="$pageContext.request.contextPath/user/update/$user.userid">修改</a>
@RequestMapping("update/userid")
public String update(@PathVariable Integer userid)
return "/user/success";
后缀不加do 在web.xml文件中配置rest路径
访问路径添加rest
<a href="$pageContext.request.contextPath/rest/user/update/$user.userid">修改</a>
RequestParam
用于规定参数默认值
public String update(@RequestParam(value = "userid",required = true,defaultValue = "1") Integer userid)
return "/user/success";
RequestParam 参数描述
value 参数名称
defaultValue 默认值
required 参数是否必须有值 如果为true 参数又为空 会报错
ResponseBody和RequestBody
RequestBody 注解 将前端传来的json数据转化为pojo对象
ResponseBody注解 将后端返回的json数据自动封装为javaBean
1,导入json处理的相关jar包jackson-core-asl.jar和jackson-mapper-asl.jar
2,在SpringMvc配置文件中配置json转换器
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<!--配置json转换器-->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</property>
</bean>
3,使用jquery ajax上传json数据到后端
4,后端使用注解接收json数据封装返回
@Controller
@RequestMapping("/user")
public class Controller01
@RequestMapping("test")
public @ResponseBody User test(@RequestBody User user)
/*
* 首先前端传来的json数据自动封装为User对象
* retun user时 ResponseBody注解会将user转为json数据返回
*/
return user;
注:一般情况下 直接使用表单提交不需要使用RequestBody注解 SpringMVC会自动封装对象。但常使用ResponseBody注解返回json数据
以上是关于SpringMVC注解开发的主要内容,如果未能解决你的问题,请参考以下文章