Restful是一种url的风格,它是对http协议的一种诠释,它要求url中只有名词没有动词。并且没有参数。
资源定位:互联网上的一切都是资源。
资源操作:get post put delete等
Url格式:
http://blog.csdn.net/beat_the_world/article/details/45621673
配置restful支持
Web.xml
<!-- 配置springMvc前端控制器 --> <servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置springMvc核心配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/SpringMvc.xml</param-value> </init-param>
<!-- 当容器启动的时候首先加载它 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> |
使用@PathVariable
@PathVariable可以从url中接收参数
要求url中的临时变量名称等于@PathVariable中接收的变量名称
@RequestMapping("/detail/{id}") public String itemsDetail(@PathVariable("id") Integer iddddd,HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model) throws Exception{ //String idStr = request.getParameter("id"); Items items = itemsService.findItemsById(iddddd);
//将数据放入Model中用于返回给页面,相当于放到了request域中,但是和真实的request域有区别。 //区别在不管请求转发还是重定向,model中的数据都可以带回。 model.addAttribute("items", items);
//如果controller方法返回string,那么返回的字符串就是页面的逻辑路径,视图解析器会将逻辑路径名称转化为物理路径名称 //逻辑路径就是页面名称(不加扩展名),物理路径就是页面的存放的位置 return "editItems"; } |
<Mvc:Resource>标签
使用<mvc:resource>标签来配置静态资源文件不受spirngMvc拦截
SpringMvc.xml
<!-- 通过mvc:resource标签来配置静态资源不受springMvc拦截 location:配置访问路径 mapping:静态资源存放的位置 --> <mvc:resources location="/js/" mapping="/js/**"/> |
同时配置了自定义类型转换器和<mvc:resource>标签则会抛出以下异常,此异常是springMvc官方bug,不用管,不耽误使用
org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.util.ArrayList<?> to type java.util.List<org.springframework.core.io.Resource> for value '[/js/]'; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type java.lang.String to type org.springframework.core.io.Resource at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41) at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:169) at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:161) at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:450) at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:496) at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:490) at
|