SpringMVC框架的学习(四)

简单了解一下Spring Mvc中的文件上传

  1首先需要(Fileupload)(commons-io)的jar包

  2配置文件上传解析器

<!-- 配置文件上传解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property name="maxUploadSize" value="99999999"/>

</bean>

3 在Controller层

  

	
	@RequestMapping("upload")    //HttpServletRequest获取文件上传路径
	public String upload(MultipartFile myfile,HttpServletRequest request) {
		//获取文件上传的真实路径
		String path=request.getServletContext().getRealPath("/upload");
		System.out.println(path);
		//创建一个文件对象
		File file=new File(path);
		if(!file.exists()) {
			file.mkdirs();
		}
		//获取文件名
		String name=System.currentTimeMillis()+myfile.getOriginalFilename();
		
		File targetFile=new File(path+"/"+name);
		try {
			//把文件写入指定目录
			FileUtils.writeByteArrayToFile(targetFile, myfile.getBytes());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return "login";
	}

  介绍Spring中的拦截器    

 1 创建一个类实现接口Handerlnterceptor 

<!-- 配置拦截器   -->
 <mvc:interceptors>
    <mvc:interceptor>
    <mvc:mapping path="user/**"/>    需要拦截的路径
    <mvc:exclude-mapping path="/user/login.jsp"/>// 此标签需要放行的路径
    <mvc:exclude-mapping path="/user/denglu"/>
    <mvc:exclude-mapping path="/user/toRegister"/>
    <bean  class="com.zhiyou100.xth.interceptor.MyInterceptor"/>
  </mvc:interceptor>
</mvc:interceptors>

   介绍Spring的数据校验

   1.引入Hibernate-validatejar

     

           2. 在相应的实体类属性上加上校验注解。

	@NotEmpty(message="用户名不能为空")
   private String name;
	@Length(min=3,max=6,message="密码的长度为[3~6]")
   private String password;

      3.在控制层接受参数的地方加上 @Valid 如果参数不符合校验 把错误封装到BindingResult对象中。

	@RequestMapping("register")
	public String register1(@Valid User user, BindingResult br, Model model) {-----@valid:校验 该参数对象
		if(br.hasErrors()) {//此处是判断有无错误信息   //BindingResult br把验证的所有测试信息封装到BildingResult类中
			Map<String,Object> map=new HashMap<String,Object>();
			List<FieldError> fieldErrors = br.getFieldErrors();
			for (FieldError fieldError : fieldErrors) {
				map.put(fieldError.getField(),fieldError.getDefaultMessage());
			}
		}
		return "list";
	}

   

    

       Springmvc:注解有哪些。

      @Controller : 标注该类为控制层类。

      @RequestMappint: 标注请求的地址

      @ResponseBody: java对象转化为json对象。

      @Valid: 标注校验该数据

      @PathVariable: 接受uri地址的值赋给方法的参数

      @SessionAttributes

      @RequestParam

      @ExceptionAdvice: 标注一个类为异常处理类

       @ExceptionHandler: 标注一个方法为异常处理的方法。

       @InitBinder: 处理日期时间参数

原文地址:https://www.cnblogs.com/meifanghua/p/11469742.html