Spring框架——day04參數校驗和文件上傳

一,參數校驗git

springmvc中咱們能夠使用第三方的校驗框架來實現請求參數的校驗,經常使用hibernate的校驗框架validation 1.pom中導入所需依賴 hibernate-validator-4.3.2.Final.jar jboss-logging-3.1.0.CR2.jar validation-api-1.0.0.GA.jar 2.配置驗證器 <!-- 配置驗證器 --> <bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property> </bean> <mvc:annotation-driven validator="myvalidator"/> 3.建立實體類,用註解配置校驗規則 public class Phone { private Integer id; @NotBlank(message = "品牌呢?") private String brand; @NotBlank(message = "沒型號?") private String model; @Max(value = 99999, message = "太貴了吧?") private Integer price; @DateTimeFormat(pattern = "yyyy-MM-dd") private Date launchDate; //GETTERS AND SETTERS... } 4.contorller: @RequestMapping("add") public String add(Model md,@Valid Phone phone, BindingResult br) throws Exception { if (br.hasErrors()) { FieldError brand = br.getFieldError("brand"); FieldError model = br.getFieldError("model"); FieldError price = br.getFieldError("price"); if (brand != null) { md.addAttribute("brandmsg", brand.getDefaultMessage()); } if (model != null) { md.addAttribute("modelmsg", model.getDefaultMessage()); } if (price != null) { md.addAttribute("pricemsg", price.getDefaultMessage()); } return "add"; } else { phoneService.add(phone); return "redirect:list"; } } 注意:參數列表中,被校驗的參數(phone)和BindingResult必須相鄰並保證順序。 5.jsp顯示錯誤信息 品  牌:<input type="text" name="brand"><span style="color: red;">${ brandmsg }</span><br> 型  號:<input type="text" name="model"><span style="color: red;">${ modelmsg }</span><br> 價  格:<input type="text" name="price"><span style="color: red;">${ pricemsg }</span><br>
二,SpringMVC中的文件上傳
1.springmvc對fileupload進行了封裝,使用上傳須要先導入fileupload的依賴: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> 2.還須要在springmvc的配置文件中配置文件解析器: <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10240000"/> </bean> 3.表單中須要指定提交方式爲post,並將enctype改成multipart/form-data 4.完成以上設置,就能夠在controller方法中接收文件了: @RequestMapping("/upload") public String upload(@RequestParam("fileName") CommonsMultipartFile file) throws Exception { } 注意該參數須要經過@RequestParam指定參數名

經常使用校驗註解
@Null 被註釋的元素必須爲 null
@NotNull 被註釋的元素必須不爲 null
@NotEmpty 被註釋的字符串的必須非空
@NotBlank 驗證字符串非null,且長度必須大於0
@Min(value) 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值
@Max(value) 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值
@Size(max=, min=) 被註釋的元素的大小必須在指定的範圍內
@Pattern(regex=) 被註釋的元素必須符合指定的正則表達式
@Email 被註釋的元素必須是電子郵箱地址
@DecimalMin(value) 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值
@DecimalMax(value) 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值
@Digits(integer, fraction) 被註釋的元素必須是一個數字,其值必須在可接受的範圍內
@Past 被註釋的元素必須是一個過去的日期
@Future 被註釋的元素必須是一個未來的日期
@Length(min=,max=) 被註釋的字符串的大小必須在指定的範圍內
@Range(min=,max=) 被註釋的元素必須在合適的範圍內
@AssertTrue 被註釋的元素必須爲 true
@AssertFalse

被註釋的元素必須爲 falseweb

相關文章
相關標籤/搜索