• 接收的参数为日期类型、controller控制层进行数据保存、进行重定向跳转


    1.接收的参数为日期类型

    1. WEB-INF下的资源是无法通过地址栏的地址直接访问的,也不能通过重定向直接访问

    2. 400错误代表请求的参数有问题

    3. 解决接收参数为日期类型出错的问题

      1. 第一种方法:使用initBinds(当你接收的参数为日期类型或时间类型时,先经过该方法的处理)
        只要网页中传来的参数格式为yyyy-MM-dd就是转化为Date格式,这种方法适合单个时间日期参数

        //在controller中添加
        @InitBinder
        	public void initBinder(ServletRequestDataBinder binder) {
        		binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
        	}
        
      2. 在实体类中添加注解(这里的格式不是输出的格式而是接收参数的格式,输出的格式还是Date类型的英文格式)

        ...
        
        public class Users {
        	private String name;
        	private String sex;
        	@DateTimeFormat(pattern = "yyyy-MM-dd")
        	private Date birthday;
        	private String phone;
        ...
        

    2.controller控制层进行数据保存

    	/**
    	 * 通过ModelAndView保存数据
    	 * @return	ModelAndView
    	 */
    	@RequestMapping("list3.do")
    	public ModelAndView list3() {
    		ModelAndView mv = new ModelAndView("index");
    		mv.addObject("name","张三");
    		return mv;
    	}
    	/**
    	 * 通过Model保存数据到request中
    	 * @param model
    	 * @return	String
    	 */
    	@RequestMapping("list4.do")
    	public String list4(Model model) {
    		model.addAttribute("name","李四");
    		return "index";
    	}
    	/**
    	 * 通过Map保存数据到request中
    	 * @param map
    	 * @return	String
    	 */
    	@RequestMapping("list5.do")
    	public String list5(Map<String,Object> map) {
    		map.put("name", "王五");
    		return "index";
    	}
    	/**
    	 * 通过request保存数据到request中
    	 * @param request
    	 * @return	String
    	 */
    	@RequestMapping("list6.do")
    	public String list6(HttpServletRequest request) {
    		request.setAttribute("name", "刘亦菲");
    		return "index";
    	}
    	/**
    	 * 通过注解的方式将数据保存到session中
    	 * @param model
    	 * @return	String
    	 */
    	@RequestMapping("list7.do")
    	public String list7(Model model) {
    		model.addAttribute("name","江疏影");
    		return "index";
    	}
    	/**
    	 * 通过原始的session保存数据到session中
    	 * @param session
    	 * @return	String
    	 */
    	@RequestMapping("list8.do")
    	public String list8(HttpSession session) {
    		session.setAttribute("name", "林允儿");
    		return "index";
    	}
    	/**
    	 * 将数据保存到application中
    	 * @param session
    	 * @return	String
    	 */
    	@RequestMapping("list9.do")
    	public String list9(HttpSession session) {
    		session.getServletContext().setAttribute("name", "杨超越");
    		return "index";
    	}
    

    3.controller层如何进行重定向跳转(因为默认是请求转发)

    return "redirect:register.jsp";使用redirect开头,告诉springmvc我要重定向跳转

    4.静态资源的映射

    1. 首先在web.xml文件设置

      	<servlet>
      		<servlet-name>springDispatcherServlet</servlet-name>
      		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      		<init-param>
      			<param-name>contextConfigLocation</param-name>
      			<param-value>classpath:springmvc-servlet.xml</param-value>
      		</init-param>
      		<load-on-startup>1</load-on-startup>
      	</servlet>
      	<servlet-mapping>
      		<servlet-name>springDispatcherServlet</servlet-name>
      		<url-pattern>/</url-pattern>
      	</servlet-mapping>
      	
      	
      
    2. 在springmvc的配置文件中添加

      <!-- 释放静态资源 -->
      	<mvc:default-servlet-handler/>
      
  • 相关阅读:
    webapi Action中跳转到指定内容
    命令行添加防火墙入站规则
    nps简单配置(linux环境)
    C# 执行Javascript脚本
    Docker集群管理(Docker Swarm)
    linux简单的部署frp
    QMap只有insert,而没有append
    SqlServer 数据发布与订阅时一个小问题的处理
    Vue 内部指令缩写
    html中ol li和ul li的区别
  • 原文地址:https://www.cnblogs.com/wuliqqq/p/11456129.html
Copyright © 2020-2023  润新知