[英]New to Spring MVC I don't understand the error on my login.jsp file error
I found similar errors on here but if some one can explain it.我在这里发现了类似的错误,但如果有人可以解释的话。 I'm having a hard time seeing how things ar been called so I'm not sure if its a syntax error or I'm I setting things incorrectly.
我很难看到事情是如何被调用的,所以我不确定它是语法错误还是我设置不正确。 This is my first pring mvc prog so I'm really new to everything.
这是我的第一个pring mvc prog,所以我对一切都很陌生。 I'm not sure how HomeController.java or LoginControler.java are being called.
我不确定如何调用 HomeController.java 或 LoginControler.java。 Also when I set in HomeController "new ModelAndView("home");".
另外,当我在 HomeController 中设置“new ModelAndView("home");”时。 I don't get an a error.
我没有收到错误。 Will add the code below.
将添加下面的代码。
//servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-
app_4_0.xsd"
id="WebApp_ID" version="4.0">
<display-name>UserRegistrationMVC</display-name>
<servlet>
<servlet-name>registration</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>registration</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
registration-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="com.profile"></context:component-scan>
<context:annotation-config></context:annotation-config>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/views/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
//login.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form:form id="loginForm" modelAttribute="loginForm" action="loginProcess" method="POST">
<!-- <p>${message} </p>-->
<table>
<tr>
<td><form:label path="username"> </form:label>Username </td>
<td><form:input path="username" name="username" id="username"></form:input> </td>
</tr>
<tr>
<td> <form:label path=""></form:label>password </td>
<td> <form:input path="password" name="password" id="password"></form:input> </td>
</tr>
<tr>
<td></td>
<td><form:button name="login" id="login" > login</form:button></td>
</tr>
</table>
</form:form>
</body>
</html>
//HomeController.java
package com.profile.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HomeController {
@RequestMapping(value ="/", method = RequestMethod.GET)
public ModelAndView getLoginForm() {
ModelAndView mav = new ModelAndView("loginform");
return mav;
}
}
//loginController.java
package com.profile.controller;
import org.springframework.stereotype.Controller;
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 com.profile.model.Login;
@Controller
public class LoginController {
@RequestMapping(value="/login", method = RequestMethod.GET)
public ModelAndView getLoginForm() {
ModelAndView mav = new ModelAndView("loginForm");
mav.addObject("loginForm", new Login());
return mav;
}
@RequestMapping(value="loginProcess", method=RequestMethod.POST)
public ModelAndView loginProcess(@ModelAttribute("loginForm") Login login) {
ModelAndView mav = null;
if(login.getUserName().equals("max") && login.getPassword().equals("123456")) {
mav = new ModelAndView("welcome");
mav.addObject("name",login.getUserName());
}
else {
mav = new ModelAndView("loginForm");
mav.addObject("message", "Username or password is wrong");
}
return mav;
}
}
Error
HTTP Status 500 – Internal Server Error
Type Exception Report
Message An exception occurred processing [/views/jsp/loginform.jsp] at line [16]
Description The server encountered an unexpected condition that prevented it from fulfilling the
request.
Exception
org.apache.jasper.JasperException: An exception occurred processing [/views/jsp/loginform.jsp] at
line [16]
13: <!-- <p>${message} </p>-->
14: <table>
15: <tr>
16: <td><form:label path="username"> </form:label>Username </td>
17: <td><form:input path="username" name="username" id="username"></form:input> </td>
18: </tr>
19:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:625)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:509)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel
(InternalResourceView.java:171)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:317)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1373)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1118)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1057)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name
'loginform' available as request attribute
org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:153)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus
(AbstractDataBoundFormElementTag.java:178)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.
getPropertyPath(AbstractDataBoundFormElementTag.java:199)
org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:271)
org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:261)
org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:230)
org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal
(AbstractFormTag.java:87)
org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag
(RequestContextAwareTag.java:83)
org.apache.jsp.views.jsp.loginform_jsp._jspx_meth_form_005flabel_005f0(loginform_jsp.java:273)
org.apache.jsp.views.jsp.loginform_jsp._jspx_meth_form_005fform_005f0(loginform_jsp.java:202)
org.apache.jsp.views.jsp.loginform_jsp._jspService(loginform_jsp.java:148)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel
(InternalResourceView.j
ava:171)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:317)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1373)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1118)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1057)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note The full stack trace of the root cause is available in the server logs.
Apache Tomcat/9.0.24
You have added model to attributes in LoginController [GET] but, missed setting in HomeController "/" handle, adding like this您已将 model 添加到 LoginController [GET] 中的属性,但是,在 HomeController“/”句柄中缺少设置,像这样添加
modelAndView.addObject("loginForm", new Login());
should fix the issue.应该解决这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.