SpringMVC中@Requestmapping参数配置以及返回类型配置
2017-03-31 15:06
351 查看
项目配置详细说明:
http://blog.csdn.net/x_iya/article/details/68059418
web.xml
可以使用@RequestMapping标注来将请求URL,如/appointments等,映射到整个类上或某个特定的处理器方法上。一般来说,类级别的标注负责将一个特定(或符合某种模式)的请求路径映射到一个控制器上,同时通过方法级别的标注来细化映射,即根据特定的HTTP请求方法(“GET”和“POST”方法等)、HTTP请求中是否携带特定参数等条件,将请求映射到匹配的方法上。
D:\>curl http://localhost:8080/SpringMVCDemo/show
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
对应的逻辑视图名为PAGE, 真实的URL= prefix前缀+PAGE +suffix后缀组成。
如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。
D:\>curl http://localhost:8080/SpringMVCDemo/show
hello
即为PAGE的值。
如果返回值为空,则响应的视图页面对应为访问地址
D:\>curl http://localhost:8080/SpringMVCDemo/show
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /SpringMVCDemo/WEB-INF/views/show.jsp. Reason:
<pre> Not Found</pre></p><hr><i><small>Powered by Jetty://</small></i><hr/>
</body>
</html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
Model的使用:
hello.jsp
可以用作参数或者在方法体内创建实例。
在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。
ModelAndMap的使用:
通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 ,
使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。
调用addObject()方法将值设置到一个名为ModelMap的类属性,ModelMap是LinkedHashMap的子类,
具体请看类。
参考:https://my.oschina.net/kolbe/blog/509810
http://blog.csdn.net/x_iya/article/details/68059418
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--配置DispatcherServlet的一个初始化参数:配置SpringMVC配置文件的位置和名称--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!-- 默认的配置文件: /WEB-INF/<servlet-name>-servlet.xml --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>springmvc.xml
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--配置自动扫描的包--> <context:component-scan base-package="com.xiya.springmvc.handlers"/> <!--配置视图解析器:如何把handler方法返回值解析为实际的物理视图--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
可以使用@RequestMapping标注来将请求URL,如/appointments等,映射到整个类上或某个特定的处理器方法上。一般来说,类级别的标注负责将一个特定(或符合某种模式)的请求路径映射到一个控制器上,同时通过方法级别的标注来细化映射,即根据特定的HTTP请求方法(“GET”和“POST”方法等)、HTTP请求中是否携带特定参数等条件,将请求映射到匹配的方法上。
@Controller public class Test { private static final String PAGE = "hello"; @RequestMapping("/show") public String show() { return PAGE; } }
D:\>curl http://localhost:8080/SpringMVCDemo/show
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
对应的逻辑视图名为PAGE, 真实的URL= prefix前缀+PAGE +suffix后缀组成。
@Controller public class Test { private static final String PAGE = "hello"; @RequestMapping("/show") @ResponseBody public String show() { return PAGE; } }
如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。
D:\>curl http://localhost:8080/SpringMVCDemo/show
hello
即为PAGE的值。
@Controller public class Test { @RequestMapping("/show") public void show() { } }
如果返回值为空,则响应的视图页面对应为访问地址
D:\>curl http://localhost:8080/SpringMVCDemo/show
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /SpringMVCDemo/WEB-INF/views/show.jsp. Reason:
<pre> Not Found</pre></p><hr><i><small>Powered by Jetty://</small></i><hr/>
</body>
</html>
@Controller public class Test { private static final String PAGE = "hello"; @RequestMapping(value = "/show", method = RequestMethod.POST) public String show() { return PAGE; } }
HTTP ERROR 405 Problem accessing /SpringMVCDemo/show. Reason: Request method 'GET' not supported Powered by Jetty://D:\>curl -d "" http://localhost:8080/SpringMVCDemo/show
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
Model的使用:
public interface Model { Model addAttribute(String attributeName, Object attributeValue); Model addAttribute(Object attributeValue); Model addAllAttributes(Collection<?> attributeValues); Model addAllAttributes(Map<String, ?> attributes); Model mergeAttributes(Map<String, ?> attributes); boolean containsAttribute(String attributeName); Map<String, Object> asMap(); }因为Model十个接口类型,所以不能在方法中实例化。
@Controller public class Test { private static final String PAGE = "hello"; @RequestMapping(value = "/show") public String show(Model model) { model.addAttribute("time", new Date()); return PAGE; } }
hello.jsp
<html> <head> <title>Hello</title> </head> <body> <h1>Hello World</h1> <h1>${time}</h1> </body> </html>Map的使用:
可以用作参数或者在方法体内创建实例。
@Controller public class Test { private static final String PAGE = "hello"; @RequestMapping(value = "/show") public String show(Map<String, Object> map) { map.put("time", new Date()); return PAGE; } }
在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。
ModelAndMap的使用:
@Controller public class Test { private static final String PAGE = "hello"; @RequestMapping(value = "/show") public ModelAndView show() { ModelAndView modelAndView = new ModelAndView(PAGE); modelAndView.addObject("time", new Date()); return modelAndView; } }
通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 ,
使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。
调用addObject()方法将值设置到一个名为ModelMap的类属性,ModelMap是LinkedHashMap的子类,
具体请看类。
参考:https://my.oschina.net/kolbe/blog/509810
相关文章推荐
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序 .
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- [springMVC]springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序