@RequestMapping
- 窄化请求
- 设置url
- 指定GET或POST请求
@RequestMapping(value="/editItem",method=RequestMethod.GET)
public void editItem(HttpServletRequest request, HttpServletResponse response,int id) throws Exception{}
@RequestParam
绑定请求参数
public String editItem(@RequestParam(value="item_id",required=true,defaultValue=”1”) String id) {}
@PathVariable
只支持一个属性value,类型为String,表示绑定的名称,如果省略则默认绑定同名参数
@RequestMapping("/login/{username}/{password}")
public String login(HttpServletRequest request,HttpServletResponse response,
@PathVariable("username") String username,@PathVariable("password") String loginname,
HttpSession session){}
注意
这是一个springmvc的RESTful的实现,需要在配置前端控制器的servlet-mapping为”/”,而不是*.action或者其他,然后还需指定静态资源的解析器
<!-- RESTful形式的DispatchServlet -->
<servlet id="dispatcherServlet_restful">
<servlet-name>dispatcherServlet_restful</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet_restful</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 使用restful的url的时候,注意要禁止其对静态资源的访问 -->
<mvc:resources location="/js/" mapping="/js/**" />
如果不配置这个,那么就会出现请求/js/jquery.js的时候,springmvc这会请求名称为js的控制器,参数为jquery.js显然是不合理的
@ModelAttribute
@CookieValue
上面的配置会自动将JESSIONID值设置到sessionId参数上
@SessionAttributes
这个注解只能声明在类上,而不能声明在方法上
@SessionAttributes("user")
public class LoginController {}
表示将Model中属性名为user的属性放入HttpSession对象中