zoukankan      html  css  js  c++  java
  • Spring Mvc 笔记二之异常和文件上传

       
                                                        spring mvc的异常与文件上传



    1.异常:

            spring注解版的异常有局部异常和全局异常
            
           1.局部异常对单个controller有效;(在controller类写一个处理异常的方法)

            

    @ExceptionHandler(value={UserException.class})
        public String handlerExceptionTest(UserException e ,HttpServletRequest request){
            request.setAttribute("msg", "用户不存在");
            
            return "error";
        }



           2.全局异常对所有的controller有效(在配置文件中配置;用于所有的controller)

          

       <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
          <property name="exceptionMappings">
            <props>
             <prop key="po.UserException">error</prop>
            </props>
          </property>
       </bean>

    //上边两种方法中使用的异常类UserException是我们自己创建的,继承自一个异常类.  (我通常extends(继承)  RuntimeException或Exception)



    2.文件上传

         //页面

         form表单设置enctype属性
           

          <form action="/SpringOne/login" method="post" enctype="multipart/form-data" class="hehe">
          用户名<input type="text" name="name"/>
          密码<input type="text" name="pwd"/>
         文件 <input type="file" name="attach"/>
           <input type="submit" value="提交"/> 
          </form>


         //

         在配置文件(xxx-servlet.xml)中配置如下代码:

        

          <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    
               <property name="maxUploadSize" value="5000000">
    
    
    
               </property>
    
          </bean>

    //controller中

        @RequestMapping(value="/login",method=RequestMethod.POST)
        public  String login(String name,String pwd,HttpSession session,MultipartFile attach) throws UserException, IOException{
            boolean flag=true;
            if(name!=null && !name.equals("")){
                for (User item : list) {
                    if(name.equals(item.getName())){
                        //model.addAttribute("user",item);
                        session.setAttribute("user", item);
                    
                        flag= false;
                        
                    }
            }
                }
                //为true抛出局部异常        
                if(flag){
                    throw new UserException();
                }
    //文件上传 System.out.println(session.getServletContext().getRealPath(
    "/static/upoload")); FileUtils.copyInputStreamToFile(attach.getInputStream(),new File(session.getServletContext().getRealPath("/static/upoload")+File.separator+attach.getOriginalFilename())); return "redirect:/hello"; }
  • 相关阅读:
    Java +安卓 定时任务
    android动画解析(初级)
    语义化版本 2.0.0
    团队中的 Git 实践
    Spring和SpringBoot比较,解惑区别
    Spring boot 拦截器和过滤器
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-cli) on project kircp-js-plan-resource: The packaging for this project did not assign a file to the bu
    Java函数优雅之道
    在springMVC的controller中获取request,response对象的一个方法
    Kotlin 数据类型(数值类型)
  • 原文地址:https://www.cnblogs.com/xiangtianxiayu/p/5356306.html
Copyright © 2011-2022 走看看