【问题标题】:<%@taglib uri="www.springframework.org/tags/form" prefix="form" %> <form:errors path="student1.*" /> causing "Unable to compile JSP page" error<%@taglib uri="www.springframework.org/tags/form" prefix="form" %> <form:errors path="student1.*" /> 导致“无法编译 JSP 页面”错误
【发布时间】:2015-12-02 06:33:05
【问题描述】:

我正在尝试学习 Spring MVC,当尝试从 Internet 获取示例时,我收到以下错误:


HTTP Status 500 - Unable to compile class for JSP

type Exception report

message Unable to compile class for JSP

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1244)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NullPointerException
    org.apache.tomcat.util.descriptor.tld.TldResourcePath.hashCode(TldResourcePath.java:164)
    java.util.HashMap.hash(HashMap.java:338)
    java.util.HashMap.get(HashMap.java:556)

这是我的 JSP 页面:

<%@taglib uri="www.springframework.org/tags/form" prefix="form" %>
<html>
<head>
<title>Admission Form</title>
</head>
<body>

<h1>${header_msg}</h1>
<h3>Admission Form for Engineering Courses</h3>

<form:errors path="student1.*" />
<form action="/Admissions/submitAdmissionForm.html" method="post">
    <table>
    <tr><td> Student's Name :   </td><td>   <input type="text" name="studentName" />    </td></tr>
    <tr><td> Student's Hobby :  </td><td>   <input type="text" name="studentHobby" />   </td></tr>
    <tr><td> Date of Birth :    </td><td>   <input type="text" name="studentDOB" />     </td></tr>
    <tr><td> Mobile No :        </td><td>   <input type="text" name="studentMobile" />  </td></tr>

    <tr><td> Skill set :        </td><td>   <select name="studentSkills" multiple>
                                            <option value="Core Java">Core Java</option>
                                            <option value="Spring Core">Spring Core</option>
                                            <option value="Spring MVC">Spring MVC</option>
                                            </select> </td></tr>
    </table>

    <table>
    <tr><td> Address :  </td></tr>
    <tr><td> Country:   <input type="text" name="studentAddress.country" />     </td>
        <td> City:      <input type="text" name="studentAddress.city" />        </td>
        <td> Street:    <input type="text" name="studentAddress.street" />      </td>
        <td> Pin code:  <input type="text" name="studentAddress.pincode" />     </td></tr>

    <tr><td> </td><td>  <input type="submit" value="Submit this form" />        </td></tr>
    </table>
</form>

</body>
</html>

我的控制器类包含以下代码:

@ModelAttribute
public void addingCommonObjects(ModelAndView model) {

    model.addObject("header_msg", "College of Engineering, Adoor");
}

@RequestMapping(value="/submitAdmissionForm.html", method=RequestMethod.POST)
public ModelAndView submitAdmissionForm(@ModelAttribute("student1") Student student, BindingResult result) {

    if(result.hasErrors()) {
        ModelAndView model = new ModelAndView("AdmissionForm");
        return model;
    }
    ModelAndView model = new ModelAndView("AdmissionFormSuccess");
    return model;
}

在控制器中添加BindingResult 和在JSP 页面中添加&lt;form:errors&gt; 之前,一切正常。 当你们看的时候,这可能是代码中的一个小问题,但在过去的 3-4 天里,我一直在尝试找出这个问题。 请提出建议。

【问题讨论】:

    标签: forms jsp spring-mvc error-handling taglib


    【解决方案1】:
    <%@taglib uri="www.springframework.org/tags/form" prefix="form" %>
    
    上述行中的

    uri 不正确。uri 中缺少 http。试试下面

    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
    

    【讨论】:

    • 哇!多谢。我在这个 http 上花了很多时间:-/
    猜你喜欢
    • 2015-07-03
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多