美文网首页
Java后台-Spring MVC 异常处理-2020-12-2

Java后台-Spring MVC 异常处理-2020-12-2

作者: 勇往直前888 | 来源:发表于2020-12-25 10:35 被阅读0次
    • Student.java 文件的内容:
    package com.tutorialspoint;
    public class Student {
       private Integer age;
       private String name;
       private Integer id;
       public void setAge(Integer age) {
          this.age = age;
       }
       public Integer getAge() {
          return age;
       }
       public void setName(String name) {
          this.name = name;
       }
       public String getName() {
          return name;
       }
       public void setId(Integer id) {
          this.id = id;
       }
       public Integer getId() {
          return id;
       }
    }
    
    • SpringException.java 文件的内容:
    package com.tutorialspoint;
    public class SpringException extends RuntimeException{
       private String exceptionMsg;   
       public SpringException(String exceptionMsg) {
          this.exceptionMsg = exceptionMsg;
       }   
       public String getExceptionMsg(){
          return this.exceptionMsg;
       }   
       public void setExceptionMsg(String exceptionMsg) {
          this.exceptionMsg = exceptionMsg;
       }
    }
    
    • StudentController.java 文件的内容:
    package com.tutorialspoint;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.ui.ModelMap;
    @Controller
    public class StudentController {
       @RequestMapping(value = "/student", method = RequestMethod.GET)
       public ModelAndView student() {
          return new ModelAndView("student", "command", new Student());
       }
       @RequestMapping(value = "/addStudent", method = RequestMethod.POST)
       @ExceptionHandler({SpringException.class})
       public String addStudent( @ModelAttribute("HelloWeb")Student student, 
          ModelMap model) {
          if(student.getName().length() < 5 ){
             throw new SpringException("Given name is too short");
          }else{
           model.addAttribute("name", student.getName());
          }     
          if( student.getAge() < 10 ){
             throw new SpringException("Given age is too low");
          }else{
           model.addAttribute("age", student.getAge());
          }
          model.addAttribute("id", student.getId());
          return "result";
       }
    }
    
    • 配置文件 web.xml 的内容:
    <web-app id="WebApp_ID" version="2.4"
        xmlns="http://java.sun.com/xml/ns/j2ee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
        <display-name>Spring Exception Handling</display-name>
    
        <servlet>
            <servlet-name>HelloWeb</servlet-name>
            <servlet-class>
               org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>HelloWeb</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
    </web-app>
    
    • 配置文件 HelloWeb-servlet.xml 的内容:
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans     
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
    <context:component-scan base-package="com.tutorialspoint" />
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="prefix" value="/WEB-INF/jsp/" />
       <property name="suffix" value=".jsp" />
    </bean>
    
    <bean class="org.springframework.web.servlet.handler.
          SimpleMappingExceptionResolver">
       <property name="exceptionMappings">
          <props>
             <prop key="com.tutorialspoint.SpringException">
                ExceptionPage
             </prop>
          </props>
       </property>
       <property name="defaultErrorView" value="error"/>
    </bean>
    
    </beans>
    
    • 视图文件 student.jsp 的内容:
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
    <html>
    <head>
        <title>Spring MVC Exception Handling</title>
    </head>
    <body>
    
    <h2>Student Information</h2>
    <form:form method="POST" action="/HelloWeb/addStudent">
       <table>
       <tr>
       <td><form:label path="name">Name</form:label></td>
       <td><form:input path="name" /></td>
       </tr>
       <tr>
       <td><form:label path="age">Age</form:label></td>
       <td><form:input path="age" /></td>
       </tr>
       <tr>
       <td><form:label path="id">id</form:label></td>
       <td><form:input path="id" /></td>
       </tr>
       <tr>
       <td colspan="2">
       <input type="submit" value="Submit"/>
       </td>
       </tr>
       </table>  
    </form:form>
    </body>
    </html>
    
    • 视图文件 error.jsp 的内容:
    <head>
        <title>Spring Error Page</title>
    </head>
    <body>
    
    <p>An error occured, please contact webmaster.</p>
    
    </body>
    </html>;
    
    • 视图文件 ExceptionPage.jsp 的内容:
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
    <html>
    <head>
        <title>Spring MVC Exception Handling</title>
    </head>
    <body>
    
    <h2>Spring MVC Exception Handling</h2>
    
    <h3>${exception.exceptionMsg}</h3>
    
    </body>
    </html>
    
    • 视图文件 result.jsp 的内容:
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
    <html>
    <head>
        <title>Spring MVC Form Handling</title>
    </head>
    <body>
    
    <h2>Submitted Student Information</h2>
       <table>
       <tr>
       <td>Name</td>
       <td>${name}</td>
       </tr>
       <tr>
       <td>Age</td>
       <td>${age}</td>
       </tr>
       <tr>
       <td>ID</td>
       <td>${id}</td>
       </tr>
       </table>  
    </body>
    </html>
    
    image.png
      1. 输入如上图所示的值,然后单击提交按钮。如果你的 Spring Web 应用程序一切都正常,你应该看到下面的结果:
    image.png

    相关文章

      网友评论

          本文标题:Java后台-Spring MVC 异常处理-2020-12-2

          本文链接:https://www.haomeiwen.com/subject/znfmnktx.html