告知Spring容器支持SpringMVC注解
<!-- 默认的注解映射的支持 -->
<mvc:annotation-driven />
<!--启用自动扫描 -->
<context:component-scan base-package="com.even.controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 配置上默认针对jstl的视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
@RequestMapping
三个常用属性:
- 1、value必填属性,代表请求的url,支持模糊配置。
- 2、params可选属性,代表对请求参数进行过滤。
- 3、method可选属性,代表请求方式。
请求处理方法可接收参数
- 1、作用域对象:
HttpServletRequest,HttpServletResponse,HttpSession - 2、单个表单提交数据:
@RequestParam(“username”)String name,
@RequestParam(“password”)String pwd - 3、表单数据封装的Bean对象
public String login(UserBean user){
} - 4、Map对象(放入到map中的数据可以同步到request作用域,可以在返回的视图页面中用EL表达式取得。
)
public String login(Map map){
map.put(“msg”, “good job”);
return “success”;
} - 5、PrintWriter作为参数
@RequestMapping(“/login”)
public void login(PrintWriter out){
out.print(“hellow world”);
} - 6、Cookie中的数据作为参数
public String test(
@CookieValue(value=”JSESSIONID”) String sid) - 7、Http协议头的数据作为参数
public String test(
@RequestHeader(“User-Agent”) String userAgent,
@RequestHeader(value=”Accept”) String[] accepts) - 8、从restful风格请求从获取数据
普通请求:
http://localhost:8080/testpro/login.do?name=zhang3
restful请求:
http://localhost:8080/testpro/login/zhang3.do
@RequestMapping(value="/toLogin/{name}")
public String jump(
@PathVariable("name") String username){
System.out.println(username);
return "login";
}
请求处理方法可以返回的值
- 1、void作为返回类型,一般用在out直接输出
- 2、String作为返回类型
如果返回非空字符串,则使用返回值作为viewName;
如果返回空,则根据默认规则返回默认页面(规则如void)。
如果要进行重定向或者请求转发,并且跳转的可能是另外一个控制器,那么返回如下字符串来实现:
forward:/**.spring – 请求转发
redirect:/*.spring – 重定向 - 3、Map作为返回类型(根据默认规则返回默认页面(规则如void)。可以在页面上用EL表达式显示数据(${msg})。)
public Map login(){
Map map = new HashMap();
map.put(“msg”, “good job”);
return map;
} - 4、ModeAndView作为返回类型
@RequestMapping(“/login”)
public ModelAndView login(UserBean user){
ModelAndView mav = new ModelAndView();
if(us.checkLogin(user)){
mav.setViewName(“success”);
mav.addObject(“GirlName”, “FRJJ”);
}else{
mav.setViewName(“login”);
}
return mav;
}