Spring MVC的新手,我不了解我的login.jsp文件错误的错误

问题描述 投票:0回答:1

我在这里发现了类似的错误,但是如果有人可以解释的话。我很难知道事物是如何调用的,所以我不知道它是语法错误还是我设置错误。这是我第一次尝试MVC编,所以我对一切真的很陌生。我不确定如何调用HomeController.java或LoginControler.java。另外,当我在HomeController中设置“ new ModelAndView(“ home”);“时。我没有错。将在下面添加代码。

//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
spring spring-mvc
1个回答
0
投票

您已经向LoginController [GET]中的属性添加了模型,但是缺少HomeController“ /”句柄中的设置,像这样添加了

modelAndView.addObject("loginForm", new Login());

应解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.