springmvc重要注解

一、springmvc的几个重要注解

1. @RequestMapping 

  ① 除了修饰方法, 还可来修饰类类定义处: 提供初步的请求映射信息。相对于 WEB 应用的根目录。

@RequestMapping("/springmvc")

public class SpringMVCTest {

连接将会是<ahref="springmvc/testRequestMapping">

  ② 方法处: 提供进一步的细分映射信息。相对于类定义处的 URL。

若类定义处未标注 @RequestMapping,则方法处标记的 URL相对于 WEB 应用的根目录。连接将会是<a href="helloworld">

③ @RequestMapping可以指明method属性:(常用)

@RequestMapping(value ="/testMethod", method = RequestMethod.POST)

但是浏览器跳转默认的是get方式,所以会出错,则此时就要加一个<form action>指明用post

<formaction="springmvc/testMethod" method="POST">

       <inputtype="submit" value="submit"/>

</form>

④ 当然还有很多参数可以指明,但是不是很重要。(其中,可以使用 params 和 headers 来更加精确的映射请求. params 和 headers 支持简单的表达式.)

//请求参数必须包含username且age不等于10. 

@RequestMapping(value = "testParamsAndHeaders", params = {"username","age!=10"}, headers = { "Accept-Language=en-US,zh;q=0.8" }) 

       <ahref="springmvc/testParamsAndHeaders?username=atguigu&age=10">Test</a>

2. @PathVariable

可以来映射 URL 中的占位符到目标方法的参数中.

@RequestMapping("/testPathVariable/{id}")

       publicString testPathVariable(@PathVariable("id") Integer id) {  //可以里面写打印id

通过链接就可以传值输出id  :<a href="springmvc/testPathVariable/1">  //这个1也可以直接在浏览器中修改。

3. @RequestParam

用来映射请求参数。 value 值即请求参数的参数名; required 该参数是否必须,默认为 true;defaultValue 请求参数的默认值。

和@ PathVariable不同,一个是请求参数,一个是URL占位符。

//这个require设为false,表示这个参数值不是必须的,如果不写,默认是true,如果请求中没有带入参数,就直接会报错,如果这里写int型,

而没有用defaultValue=“0”,在没有传参时也会出错,除非用Integer类型。
@RequestMapping(value = "/testRequestParam")
public String testRequestParam(@RequestParam(value = "username") String un, @RequestParam(value = "age", required = false, defaultValue = "0") int age){
System.out.println("testRequestParam, username: " + un + ", age: "+ age);
在链接处:<a href="springmvc/testRequestParam?username=atguigu&age=11">

4. @InitBinder

由 @InitBinder 标识的方法可以对 WebDataBinder 对象进行初始化。WebDataBinder 是 DataBinder 的子类,用于完成由表单字段到 JavaBean 属性的绑定;

@InitBinder方法不能有返回值,它必须声明为void;

@InitBinder方法的参数通常是是 WebDataBinder

@InitBinder

public void initBinder(WebDataBinderbinder){

       binder.setDisallowedFields("lastName");  //作用是不给lastName赋值

}

这个方法一般是在某个类中的集合上,因为不能为该集合传值,所以只能手动映射,这时候就要用到这个注解。



二、springmvc的几个重要配置

1. HiddenHttpMethodFilter

浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支持,Spring3.0 添加了一个过滤器,可以将这些请求转换为标准的 http 方法,

使得支持 GET、POST、PUT 与DELETE 请求。

① <!-- 在web.xml中配置 HiddenHttpMethodFilter这个过滤器: <filter> <filter-mapping>
把 POST 请求转为 DELETE 或 POST 请求 -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
② @RequestMapping(value = "/testRest/{id}", method = RequestMethod.DELETE)
public String testRestDelete(@PathVariable Integer id) {
//注:对于post不需要@PathVariable Integer id了
链接中:<form action="springmvc/testRest/1" method="post">
// _method这个参数值是HiddenHttpMethodFilter中定义的用于转换的
<input type="hidden" name="_method" value="DELETE"/> //PUT也是一样
<input type="submit" value="TestRestDELETE"/>
</form>
其中对于get的方式:<a href="springmvc/testRest/1"> ; 对于post不需要传值。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值