• 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>
  • 相关阅读:
    『高性能模型』卷积复杂度以及Inception系列
    『高性能模型』轻量级网络梳理
    『计算机视觉』YOLO系列总结
    利用Azure Functions和k8s构建Serverless计算平台
    我如何通过K8S开发认证(CKAD)考试
    对Windows桌面应用程序进行UI自动化测试
    Service Fabric是什么?
    如何把遗留的Java应用托管在Service Fabric中
    如何在本地数据中心安装Service Fabric for Windows集群
    当TFS/VSTS遇上Power BI
  • 原文地址:https://www.cnblogs.com/BoxMonster/p/11456365.html
Copyright © 2020-2023  润新知