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";

SpringMVC注解开发_spring


后缀不加do 在web.xml文件中配置rest路径

访问路径添加rest

<a href="$pageContext.request.contextPath/rest/user/update/$user.userid">修改</a>

SpringMVC注解开发_mvc_02

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数据到后端

SpringMVC注解开发_springmvc_03


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注解开发的主要内容,如果未能解决你的问题,请参考以下文章

使用注解开发SpringMVC

SpringMVC注解开发

SpringMVC使用注解开发

SpringMVC-Mybatis整合和注解开发

SpringMVC注解开发

SpringMVC的全注解开发