1.接收的参数是日期类型
2.controller进行数据保存
3.controller进行重定向跳转
4.静态资源的映射关系
5.springMVC完成ajax功能
一、接收参数是日期类型
细节补充:WEB-INF下的资源无法直接访问,也无法重定向访问
如果按照常规接收日期==>status40(请求参数问题) 方法一:接收独立的参数,使用initBinder注解,在Cotroller中添加下述方法 @InitBinder //org.springframework.web.bind.annotation.InitBinder public void test(ServletRequestDataBinder binder){ //只要网页中传来的数据为预设的格式,就会转化为Date类型 binder.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"),true)); } 方法二:实体类中加注解 public class User { private String name; private String sex; private int age; @DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss") //不是输出的结果格式,而是符合要求的参数接收格式 private Date birthday; }
二、数据保存
1.三种方式作用域都是request,${requestScope.key} 方式一:保存在ModelAndView中 @RequestMapping("setInfo") public ModelAndView setInfo(String name) { ModelAndView mv=new ModelAndView(); mv.setViewName("login"); mv.addObject("user","user"); return mv; } 方式二:保存在Model对象中 @RequestMapping("setInfo") public String setInfo(Model model) { model.addAttribut("name","大兵"); return "login"; } 方式三:保存在map中 @RequestMapping("setInfo") public String setInfo(Map<String, Object> map) { map.put("name","大兵"); return "login"; } 方式四:使用原始的HttpServletRequest @RequestMapping("setInfo") public String setInfo(HttpServletRequest request) { request.setAttribute("name","大兵"); return "login"; } 2.使用session对象存储数据 方式一:原始的HttpSession @RequestMapping("setInfo") public String setInfo(HttpSession session) { session.setAttribute("name","大兵"); return "login"; } 方式二:注解方式==>类上加上注解:@SessionAttributes @Controller @RequestMapping("user") @SessionAttributes(names={"name","sex"}) public class UserController { @RequestMapping("setInfo") public String setInfo(Model model) { model.addAttribut("name","大兵"); model.addAttribut("sex","男"); return "login"; } } //names={key1,key2} //types=User.class==>将model中所有类型为User的属性添加到会话中 //types={User.class, Dept.class}==>将model中所有类型为User和Dept的属性添加到会话中 //value={"user1","user2"}==>将model中属性名为user1和user2的属性添加到会话中 3.利用session获取application对象并把数据存储到application中(服务器没停止,数据有效) @RequestMapping("setInfo") public String setInfo(HttpSession session) { ServletContext servletContext = session.getServletContext(); //得到application对象 servletContext.setAttribute("name","我在application中"); return "login"; }
三、Controller进行重定向跳转
@RequestMapping("setInfo") public void setInfo() { return "login"; //默认为请求转发到login.jsp页面 // return "redirect:login.jsp"; //重定向,此时不再经过视图解析器,也可以是到其他Controller方法 }
四、静态资源的映射关系
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<!--拦截所有的请求(要注意静态资源的,如jpg,css,js,jquery,需要在springMVC配置文件中添加<mvc:default-servlet-handler/>)-->
<url-pattern>/</url-pattern>
</servlet-mapping>