• 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>
  • 相关阅读:
    jvm 垃圾收集算法
    jvm 判断对象死亡
    jvm 内存分配
    jvm 对象奥秘
    mysql事务测试及delete和update是使用行级锁,还是表级锁
    sql语句中where后边的哪些条件会使索引失效 -- SQL语句优化
    java nio详解
    mysql数据库优化概述详解
    java 序列化和反序列化
    java io框架详解
  • 原文地址:https://www.cnblogs.com/BoxMonster/p/11456365.html
Copyright © 2020-2023  润新知