Spring MVC(学习笔记二)--控制器的注解(一) -之@RequestMapping的使用

前面我们学习了Spring MVC最最基本的使用步骤及如何引用静态资源。

Spring MVC提供了一个基于注释的编程模型,今天,我们来学习一下Annotated Controllers(注释的解析器官网地址


@Controller@RestController构成了使用注释来表达请求映射,请求输入,异常处理等等。带注释的控制器具有灵活的方法参数,不必扩展基类,也不必实现特定接口。

//@RestController  定义接口,返回数据(不需要再处理方法上定义@responseBody)


@RequestMapping

作用:标注用于请求映射到控制器的方法
属性:可以通过 URL(path=value)HTTP方法(method)请求参数(params)请求参数的条件( produces) 标头(headers) 提交内容类型(consumes) 进行匹配
范围:在类级别上用于表示共享映射(如同struts2 @namespace) 或 在方法级缩小特定的端点映射(如同struts2 @action)
@Controller
@RequestMapping(value = "/rmc")// 可以相当于struts2中的namespace
public class RequestMappingController {
    @RequestMapping(value = "req")//相当于struts2中的action
    public String  reqm(){
        return "index";
    }
}
下面是属性的详解:

HTTP方法(method)具体快捷的变种:
 @ GetMapping *[相当于=@RequestMapping(method={RequestMethod.GET})]
 @PostMapping*[相当于=@RequestMapping(method={RequestMethod.POST})]
 @PutMapping
@DeleteMapping
@PatchMapping


URL模式(value=path):

? 匹配一个字符
* 匹配路径段中的零个或多个字符
** 匹配零个或多个路径段

实例:(该实例的类名就是上面代码中的类:RequestMappingController,路径为:/rmc)
/**
* 访问请求:http://localhost:8080/rmc/reqq?
* ?代表匹配一个任意字符
* @return 返回的视图
*/
@GetMapping(value ="reqq?")
public String  reqQues(){
    return "index";
}

/**
* 访问请求:http://localhost:8080/rmc/reqq*
* *代表匹配零个或多个字符
*/
@GetMapping(value ="reqs*")
public String  reqStar(){
    return "index";
}

/**
* 访问请求:http://localhost:8080/rmc/reqs/1/1/1/q
* **匹配零个或多个路径段
*/
@GetMapping(path ="reqs/**/q")
public String  reqTwoStar(){
    return "index";
}
请求参数(params)
/**
* 请求路径:http://localhost:8080/rmc/reqp?id=10001
* @return
*/
@RequestMapping(value = "reqp",params ={"id=10001"})
public String  reqParams(){
    return "index";
}
当请求路径没有带这个参数时就会报错抛出异常:


提交内容类型(consumes):
 RequestMappingController类:
// 相当于@RequestMapping(value = "reqcs",method = RequestMethod.POST,consumes = {"text/plain"})
@PostMapping(value = "reqcs",consumes = {"text/plain"})
public String  reqcs(){
    return "index";
}
index.jsp页面:
<h1>requestMapping:</h1>
     <form action="${pageContext.request.contextPath}/rmc/reqcs" method="post" enctype="text/plain">
        <input type="text">
        <input type="submit" value="sub">
    </form>
 如果index.jsp页面的enctype和类中的consumes提交类型不一致时就会报错,抛出异常:


标头(headers):
 我们可以F12看看发送请求后,headers有哪些内容:

/**
* 加上该标头就表明:只能是Host为localhost:8080的请求才能够访问
*/
@RequestMapping(value = "reqh",headers = {"Host=localhost:8080"})
public String  reqHeaders(){
    return "index";
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC中配置Multi-part解析器需要以下几个步骤: 1. 添加Maven依赖 ```xml <!-- Spring MVC Multi-part Dependency --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.3.9</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.11.0</version> </dependency> ``` 2. 配置Multi-part解析器 在Spring配置文件中添加如下配置: ```xml <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="1000000" /> </bean> ``` 在这个示例中,我们使用了CommonsMultipartResolver作为Multi-part解析器,并设置了最大上传文件大小为1MB。 3. 在控制器使用Multi-part解析器 你可以在控制器中通过@RequestParam注解获取上传的文件,例如: ```java @RequestMapping(value = "/uploadFile", method = RequestMethod.POST) public String uploadFile(@RequestParam("file") MultipartFile file) { // 处理上传的文件 return "redirect:/"; } ``` 在这个示例代码中,我们使用@RequestParam注解将上传的文件绑定到MultipartFile对象上。你可以在控制器使用MultipartFile对象处理上传的文件。 注意,如果你使用的是Spring Boot,Multi-part解析器已经默认配置好了,你只需要在控制器使用即可。例如: ```java @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file) { // 处理上传的文件 return "redirect:/"; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值