springMVC数据相关

Posted boxmonster

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springMVC数据相关相关的知识,希望对你有一定的参考价值。

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>

 

以上是关于springMVC数据相关的主要内容,如果未能解决你的问题,请参考以下文章

springMVC相关—返回Json数据

SpringMVC之application-context.xml,了解数据库相关配置

SpringMVC之application-context.xml,了解数据库相关配置

掌握SpringMVC如何接收请求数据和响应结果

SpringMVC:理解SpringMVC相关概念

springMVC处理器相关内容