Springmvc后台校验加文件上传(完整版)

来源:互联网 发布:数据库er图 编辑:程序博客网 时间:2024/06/03 09:18

后台校验<!--数据验证--><dependency>  <groupId>org.hibernate</groupId>  <artifactId>hibernate-validator</artifactId>  <version>4.0.1.GA</version></dependency><!--jboss logging--><dependency>  <groupId>org.jboss.logging</groupId>  <artifactId>jboss-logging</artifactId>  <version>3.3.0.Final</version></dependency><!--validation api--><dependency>  <groupId>javax.validation</groupId>  <artifactId>validation-api</artifactId>  <version>1.0.0.GA</version></dependency><!--slf4j api--><dependency>  <groupId>org.slf4j</groupId>  <artifactId>slf4j-api</artifactId>  <version>1.7.21</version></dependency2:然后创建个实体类UserInfo 在这里使用注解方法来校验属性别忘了GET.SET public class UserInfo {/*必须是0到100之间*/@Min(value = 0,message = "成绩最小为{value}")@Max(value = 100,message = "最大值为{value}")private Integer score;/*手机号不能为空,必须是1开头 第二位是34567*/@NotEmpty(message = "手机号不能我为空")@Pattern(regexp = "^1[3,4,5,6,7,8,9]\\d{9}$",message = "手机号不正确")private String phone;//不能为空    //必须是6个字符以上    @NotEmpty(message = "用户不能为空")    @Size(min = 6,message = "名字至少6个字符")    private String name;GET.SET 省略。。。。。。3:然后controller里来使用和jsp.界面接应@Controllerpublic class controller {    @RequestMapping("/first")    public ModelAndView doFist(@Valid UserInfo info, BindingResult br) {        ModelAndView mv = new ModelAndView();        /*成功后跳的界面*/        mv.setViewName("/index.jsp");    /*有一个可以侦测到验证错误总数的方法*/        int errorCount = br.getErrorCount();        if (errorCount > 0) {            //证明模型验证失败            FieldError score = br.getFieldError("score");//5            FieldError name = br.getFieldError("name");//5            FieldError phone = br.getFieldError("phone");//5            if (score != null) {                mv.addObject("scormsg", score.getDefaultMessage());            }            if (name != null) {                mv.addObject("namemsg", name.getDefaultMessage());            }            if (phone != null) {                mv.addObject("phonemsg", phone.getDefaultMessage());            }            /*失败后的界面*/            mv.setViewName("/log.jsp");        }        return mv;    }    }4:大配置里的节点配置<!--配置包扫描器--><context:component-scan base-package="cn.hayyp.jiaoyan"></context:component-scan><bean id="myValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">    <property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property></bean><!--mvc注解驱动--><mvc:annotation-driven validator="myValidator"/>最后jsp.的界面<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html><head>    <title>商品</title></head><body><h1>数据校验</h1><form action="/first" method="post">    成绩:<input name="score" /> <span>${scormsg }</span><br/><br/>    姓名:<input name="name"/><span>${namemsg }</span><br/><br/>    电话:<input name="phone"/><span>${phonemsg }</span><br/><br/>    <input type="submit" value="注册"/></form></body></html>---------------------------------------------------------------------------------------------------------------------------------文件上传第1步<!--文件上传的jar包--><dependency>  <groupId>commons-fileupload</groupId>  <artifactId>commons-fileupload</artifactId>  <version>1.3.1</version></dependency><dependency>  <groupId>commons-io</groupId>  <artifactId>commons-io</artifactId>  <version>1.4</version></dependency>第2步创建一个类 FirstController 使用SpringMVC框架创建注解方法写一个文件上传的方法别忘了注解:如下@Controllerpublic class FirstController {@RequestMapping("/first")public String doFirst(MultipartFile upload, HttpSession session){    //获取到用户上传的文件名字    String filename = upload.getOriginalFilename();//获取到文件的断名    //将相对路径转换成绝对路径                                    这个是创建在WEB-INF下面的文件名字    String realPath = session.getServletContext().getRealPath("/shangchuanwenjian");    //将file写入指定的路径    File file=new File(realPath,filename);    try {        upload.transferTo(file);        return "/index.jsp";    } catch (IOException e) {        e.printStackTrace();        return "/WJSC.jsp";    }第3步: 大配置里的配置文件 <!--配置包扫描器--><context:component-scan base-package="cn.hayyp.shangchuan"></context:component-scan>        <!--配置文件上传的专用类-->        <!--必须要是ID 要不好使--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean><mvc:annotation-driven/>然后把web.xml指定的配置文件名字改一下<!--初始化参数--><init-param>  <param-name>contextConfigLocation</param-name>  <param-value>classpath:applicationContextWJSC.xml</param-value></init-param>这个是jsp,上传页面<%--  Created by IntelliJ IDEA.  User: Administrator  Date: 2017/8/30  Time: 15:17  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>Title</title></head><body><h1>文件上传</h1><%--文件上上传必须用post 和 enctype="multipart/form-data"--%><form action="/first" method="post" enctype="multipart/form-data">    文件   <input type="file" name="upload"/>    <input type="submit"/></form></body></html>


阅读全文
0 0
原创粉丝点击