SpringMVC的各种注解
@RequestMapping
这个注解标注在方法名上,如
- /**
- * 拦截所有请求:
- * @RequestMapping(value="/*", method = {RequestMethod.GET})
- * http://localhost:8080/SpringMVCTag/helloworld/xd
- */
- //@AuthPassport
- @RequestMapping(value="/*", method = {RequestMethod.GET})
- public ModelAndView urlTest(){
- ModelAndView modelAndView = new ModelAndView();
- //跳转到 urltest.jsp或者其他后缀的页面,这个要看springmvc的配置文件里是怎么设置的,
- modelAndView.setViewName("urltest");
- return modelAndView;
- }
@RequestMapping(value="/*")
1 就是拦截所有请求
结合上面的一小段代码就是拦截:
类似于http://localhost:8080/SpringMVCTag/helloworld/我是任意字符,
http://localhost:8080/SpringMVCTag/helloworld/comaosdfjoa
这样的请求。
2 拦截多个(多个)请求
例如:
- /**
- * 拦截多种请求
- * 如: @RequestMapping(value={"/index","/hello"})
- * 访问URL:http://localhost:8080/SpringMVCTag/helloworld/index
- * @return
- * @throws SQLException
- */
- //@AuthPassport
- @RequestMapping(value={"/index","/hello"})
- public ModelAndView index() throws SQLException{
- //throw new SQLException("数据库异常。");
- ModelAndView modelAndView = new ModelAndView();
- //在jsp中可以通过 ${message} 的形式来获取绑定的值
- modelAndView.addObject("message", "Hello World!");
- modelAndView.setViewName("index");
- return modelAndView;
- }
3 @RequestMapping 注解结合 @PathVariable注解可以在控制器(也就是具体的方法)的入参里
获取到URL中的占位参数
例如:
- /**
- * @RequestMapping 结合 @PathVariable 注解可以获取URL中带占位的那个参数值,
- * 具体到这个例子中,在方法名中Integer id这个入参的值就是URL中的值,
- * 假如URL为:
- * http://localhost:8080/SpringMVCTag/helloworld/detail/yangdandan
- * 那么在跳转到的detail.jsp中通过
- * ${cxrr}的形式就可以获取到 yangdandan 这个字符串
- * @param id
- * @return
- */
- @RequestMapping(value="/detail/{thepara}", method = {RequestMethod.GET})
- public ModelAndView getDetail(@PathVariable(value="thepara") String thepara){
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.addObject("crxx", thepara);
- modelAndView.setViewName("detail");
- return modelAndView;
- }
明天继续填坑。
项目所在位置如下图:
BaseController.java:
- package com.demo.web.controllers;
- import java.sql.SQLException;
- import javax.servlet.http.HttpServletRequest;
- import org.springframework.web.bind.annotation.ExceptionHandler;
- /**
- *
- * @author Wei
- * @time 2017年4月20日 下午3:56:51
- */
- public abstract class BaseController {
- @ExceptionHandler
- public String exception(HttpServletRequest request, Exception e) {
- request.setAttribute("exceptionMessage", e.getMessage());
- // 根据不同的异常类型进行不同处理
- if(e instanceof SQLException)
- return "testerror";
- else
- return "error";
- }
- }
- HelloWorldController.java
- package com.demo.web.controllers;
- import java.sql.SQLException;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.servlet.ModelAndView;
- /**
- *
- * @author Wei
- * @time 2017年4月20日 下午4:56:43
- */
- @Controller
- @RequestMapping(value = "/helloworld")
- public class HelloWorldController extends BaseController {
- /**
- * 拦截所有请求:
- * @RequestMapping(value="/*", method = {RequestMethod.GET})
- * http://localhost:8080/SpringMVCTag/helloworld/xd
- */
- //@AuthPassport
- @RequestMapping(value="/*", method = {RequestMethod.GET})
- public ModelAndView urlTest(){
- ModelAndView modelAndView = new ModelAndView();
- //跳转到 urltest.jsp或者其他后缀的页面,这个要看springmvc的配置文件里是怎么设置的,
- modelAndView.setViewName("urltest");
- return modelAndView;
- }
- /**
- * 拦截多种请求
- * 如: @RequestMapping(value={"/index","/hello"})
- * 访问URL:http://localhost:8080/SpringMVCTag/helloworld/index
- * @return
- * @throws SQLException
- */
- //@AuthPassport
- @RequestMapping(value={"/index","/hello"})
- public ModelAndView index() throws SQLException{
- //throw new SQLException("数据库异常。");
- ModelAndView modelAndView = new ModelAndView();
- //在jsp中可以通过 ${message} 的形式来获取绑定的值
- modelAndView.addObject("message", "Hello World!");
- modelAndView.setViewName("index");
- return modelAndView;
- }
- /**
- * @RequestMapping 结合 @PathVariable 注解可以获取URL中带占位的那个参数值,
- * 具体到这个例子中,在方法名中Integer id这个入参的值就是URL中的值,
- * 假如URL为:
- * http://localhost:8080/SpringMVCTag/helloworld/detail/yangdandan
- * 那么在跳转到的detail.jsp中通过
- * ${cxrr}的形式就可以获取到 yangdandan 这个字符串
- * @param id
- * @return
- */
- @RequestMapping(value="/detail/{thepara}", method = {RequestMethod.GET})
- public ModelAndView getDetail(@PathVariable(value="thepara") String thepara){
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.addObject("crxx", thepara);
- modelAndView.setViewName("detail");
- return modelAndView;
- }
- @RequestMapping(value="/reg/{name:\\w+}-{age:\\d+}", method = {RequestMethod.GET})
- public ModelAndView regUrlTest(@PathVariable(value="name") String name, @PathVariable(value="age") Integer age){
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.addObject("name", name);
- modelAndView.addObject("age", age);
- modelAndView.setViewName("regurltest");
- return modelAndView;
- }
- @RequestMapping(value="/paramstest", params="example!=AAA", method = {RequestMethod.GET})
- public ModelAndView paramsTest(){
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.setViewName("paramstest");
- return modelAndView;
- }
- }
SpringMVC的各种注解的更多相关文章
- SpringMVC自动扫描@Controller注解的bean
若要对@Controller注解标注的bean进行自动扫描,必须将<context:component-scan base-package="包路径.controller"/ ...
- 关于spring-mvc的InitBinder注解的参数
关于spring-mvc的InitBinder注解的参数 通过Spring-mvc的@InitBinder注释的方法可以对WebDataBinder做一些初始化操作.比如设置Validator. 我一 ...
- SpringMVC使用@ResponseBody注解返回中文字符串乱码的问题
先说一下我的经历,以及解决问题的而过程. 在使用SpringMVC的时候,最开始的时候在配置文件中使用<mvc:annotation-driven />去自动注册DefaultAnnota ...
- SSM-SpringMVC-14:SpringMVC中大话注解式开发基础--呕心沥血版
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 注解的基础我不再多啰嗦,百度一搜很多,很详细啊,我就讲一下SpringMVC中的注解入门 通过注解的方式定义 ...
- [转载]SpringBoot系列: SpringMVC 参数绑定注解解析
本文转载自 https://www.cnblogs.com/morethink/p/8028664.html, 作者写得非常好, 致谢! SpringMVC 参数绑定注解解析 本文介绍了用于参数绑 ...
- 使用SpringMVC的@CrossOrigin注解解决跨域请求问题
跨域问题,通俗说就是用ajax请求其他站点的接口,浏览器默认是不允许的.同源策略(Same-orgin policy)限制了一个源(orgin)中加载脚本或脚本与来自其他源(orgin)中资源的交互方 ...
- spring mvc 返回乱码SpringMVC使用@ResponseBody注解返回中文字符串乱码的问题
原文地址:https://www.cnblogs.com/fzj16888/p/5923232.html 先说一下我的经历,以及解决问题的而过程. 在使用SpringMVC的时候,最开始的时候在配置文 ...
- (三)SpringMVC之常用注解
SpringMVC的常用注解 注解 说明 @Controller 用于说明这个类是一个控制器 @RequestMapping 用于注释一个控制器类或者控制器类的方法 @RequestParam 用于将 ...
- springMVC+springJDBC+Msql注解模式
最近基于Spring4.X以上的版本写了一个springMVC+springJDBC+Msql注解模式的一个项目,之中也遇到过很多问题 ,为了防止以后遇到同样问题现记录一下知识点以及详细配置. 首先我 ...
- SpringMVC使用@Valid注解进行数据验证
SpringMVC使用@Valid注解进行数据验证 from:https://blog.csdn.net/zknxx/article/details/52426771 我们在做Form表单提交的时 ...
随机推荐
- rabbitmq实现向各服务广播消息
广播fanout 主要是将一个消息,分发到绑定了它的队列上,而这些队列如消费者自己去建立和绑定! 对生产者是解耦的 生产者不需要关心消费者有多少,消费者如果需要这种消息,只需要把队列绑定到exchan ...
- .NET Core 的缓存篇之MemoryCache
前言 对于缓存我们都已经很熟悉了,缓存分为很多种,浏览器缓存.试图缓存.服务器缓存.数据库缓存等等一些,那今天我们先介绍一下视图缓存和MemoryCache内存缓存的概念和用法: 视图缓存 在老的版本 ...
- Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用
戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...
- XSS 绕过技术
XSS Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常是可以被看作 ...
- Tomcat 对 HTTP 协议的实现(上)
协议,直白的说就是存在一堆字节,按照协议指定的规则解析就能得出这堆字节的意义.HTTP 解析分为两个部分:解析请求头和请求体. 请求头解析的难点在于它没有固定长度的头部,也不像其他协议那样提供数据包长 ...
- Python编程从入门到实践笔记——列表简介
Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...
- Writing a Simple Publisher and Subscriber
用c++实现一个publisher/subscriber publisher #include "ros/ros.h" #include "std_msgs/String ...
- Map集合。
Map集合: java.util,Map<k,v> 特点:1.键值对 2.key-value一一对应 3.key不允许重复. Map常用实现类: java.util.HashMap< ...
- Microsoft.Office.Interop.Excel 报错
Microsoft.Office.Interop.Excel 报错 引用dll 在以下目录 C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop. ...
- .net基础系列
这里汇总了.net基础的相关文章,方便查阅! .net基础 委托(1)认识委托 委托(2).net 1.x中的委托 委托(3).net 2.0中的委托 委托(4).net 3.5中的委托 委托(5)委 ...