我對Maven Web應用程序有一個非常討厭且令人沮喪的問題,讓我暫時停滯不前。 顯然,從我以前的谷歌搜索,這是一個常見的Spring MVC錯誤,但我無法找到我需要的互聯網上提供的解決方案迄今。請注意,我在Spring和MVC概念中都是初學者。Java Spring - 從jsp表單檢索數據時發生IllegalStateException
我有一個Web應用程序應該管理建築管理(居民,租金計算等)。我使用Spring MVC的,休眠,爪哇1.8,Tomcat的8服務器容器,和SQL Server 2014 首先,這是我對BULDING居民POJO,被稱爲居民類型:
@Entity
@Table (name = "INHABITANT")
public class Inhabitant {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "ID")
private long id;
@Column(name = "FIRSTNAME")
private String firstName;
@Column(name = "LASTNAME")
private String lastName;
@Column(name = "APARTAMENT_NUMBER")
private String apartamentNumber;
@Column(name = "APARTAMENT_OWNER")
private String apartamentOwner;
@Column(name = "TELEPHONE_NUMBER")
private String telephoneNumber;
@Column(name = "EMAIL_ADDRESS")
private String emailAddress;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getApartamentNumber() {
return apartamentNumber;
}
public void setApartamentNumber(String apartamentNumber) {
this.apartamentNumber = apartamentNumber;
}
public String getApartamentOwner() {
return apartamentOwner;
}
public void setApartamentOwner(String apartamentOwner) {
this.apartamentOwner = apartamentOwner;
}
public String getTelephoneNumber() {
return telephoneNumber;
}
public void setTelephoneNumber(String telephoneNumber) {
this.telephoneNumber = telephoneNumber;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}
這是我的調度員的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.xsd">
<context:component-scan base-package="laura.bachelordegree.controller" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
這是我的web.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_3_1.xsd"
version="3.1" -->
<display-name>BuildingAdministration</display-name>
<welcome-file-list>
<welcome-file>login/index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>
這是我的jsp登記表,應映射到居民對象:
<!DOCTYPE html>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@page session="false" %>
<html>
<head>
<meta charset="utf-8" />
<title>Registration</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="login/bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="login/font-awesome/css/font-awesome.min.css" />
<script type="text/javascript" src="login/js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="login/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<!-- Registration form - START -->
<div class="container">
<div class="row">
<%-- <form role="form"> --%>
<form:form method="post" modelAttribute="inhabitant" role="form" action="BuildingAdministration/src/main/webapp/login/result">
<div class="col-lg-6">
<div class="well well-sm"><strong><span class="glyphicon glyphicon-asterisk"></span>Required Field</strong></div>
<div class="form-group">
<label for="InputFirstName">Enter First Name</label>
<div class="input-group">
<form:input path="firstName" type="text" cssClass="form-control" id="InputFirstName" />
<span class="input-group-addon"><span class="glyphicon glyphicon-asterisk"></span></span>
</div>
</div>
<div class="form-group">
<label for="InputLastName">Enter Last Name</label>
<div class="input-group">
<form:input path="lastName" type="text" cssClass="form-control" id="InputLastName" />
<span class="input-group-addon"><span class="glyphicon glyphicon-asterisk"></span></span>
</div>
</div>
<div class="form-group">
<label for="InputApartmentNumber">Enter Apartment Number</label>
<div class="input-group">
<form:input path="apartmentNumber" type="text" cssClass="form-control" id="InputApartmentNumber" />
<span class="input-group-addon"><span class="glyphicon glyphicon-asterisk"></span></span>
</div>
</div>
<div class="form-group">
<label for="InputApartmentOwner">Enter Apartment Owner</label>
<div class="input-group">
<form:input path="apartmentOwner" type="text" cssClass="form-control" id="InputApartmentOwner" />
<span class="input-group-addon"><span class="glyphicon glyphicon-asterisk"></span></span>
</div>
</div>
<div class="form-group">
<label for="InputTelephoneNumber">Enter Telephone Number</label>
<div class="input-group">
<form:input path="telephoneNumber" type="text" cssClass="form-control" id="InputTelephoneNumber" />
<span class="input-group-addon"><span class="glyphicon glyphicon-asterisk"></span></span>
</div>
</div>
<div class="form-group">
<label for="InputEmail">Enter Email</label>
<div class="input-group">
<form:input path="emailAddress" type="email" cssClass="form-control" id="InputEmailFirst" />
<span class="input-group-addon"><span class="glyphicon glyphicon-asterisk"></span></span>
</div>
</div>
<div class="form-group">
<label for="InputEmail">Confirm Email</label>
<div class="input-group">
<form:input path="emailAddress" type="email" cssClass="form-control" id="InputEmailSecond" />
<span class="input-group-addon"><span class="glyphicon glyphicon-asterisk"></span></span>
</div>
</div>
<input type="submit" name="submit" id="submit" value="Submit" class="btn btn-info pull-right">
</div>
</form:form>
<%-- </form> --%>
<div class="col-lg-5 col-md-push-1">
<div class="col-md-12">
<div class="alert alert-success">
<strong><span class="glyphicon glyphicon-ok"></span> Success! Message sent.</strong>
</div>
<div class="alert alert-danger">
<span class="glyphicon glyphicon-remove"></span><strong> Error! Please check all page inputs.</strong>
</div>
</div>
</div>
</div>
</div>
<!-- Registration form - END -->
</body>
</html>
最後,控制類,這應該有效地將數據從與Java實體jsp的表格圖,居民:
@RequestMapping(value = "/index", method = RequestMethod.GET)
public String loadInhabitant(@ModelAttribute("inhabitant")Inhabitant inhabitant,
ModelMap model) {
model.addAttribute("firstName", inhabitant.getFirstName());
model.addAttribute("lastName", inhabitant.getLastName());
model.addAttribute("apartmentNumber", inhabitant.getApartamentNumber());
model.addAttribute("apartmentOwner", inhabitant.getApartamentOwner());
model.addAttribute("apartmentNumber", inhabitant.getApartamentNumber());
model.addAttribute("telephoneNumber", inhabitant.getTelephoneNumber());
model.addAttribute("emailAddress", inhabitant.getEmailAddress());
return "result";
}
現在,這是錯誤我得到每當我嘗試運行我的服務器上的應用程序:
消息java.lang.IllegalStateException:既不BindingResult也不對bean名稱純目標對象「居民」可作爲請求屬性
記述服務器遇到內部錯誤,導致無法完成此請求。
例外org.apache.jasper.JasperException: java.lang.IllegalStateException:既不BindingResult也不對豆名 '居民' 可作爲請求 屬性 org.apache.jasper.servlet.JspServletWrapper平原 目標對象.handleJspException(JspServletWrapper.java:555) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:471) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) 有機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)
根源java.lang.IllegalStateException:既不BindingResult也不對豆名「居民」 平原目標對象可以作爲請求 屬性 org.springframework.web.servlet.support.BindStatus。(BindStatus.java:144) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) org.springframework.web .servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFor mElementTag.java:154) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag。writeDefaultAttributes(AbstractDataBoundFormElementTag.java:117) org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422) org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag。的java:142) org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) 有機.apache.jsp.login.index_jsp._jspx_meth_form_005finput_005f0(index_jsp.java:322) org.apache.jsp.login.index_jsp._jspx_meth_form_005fform_005f0(index_jsp.java:216) org.apache.jsp.login.index_jsp._jspService(index_jsp .java:148) org.apache.jasper.runtime.HttpJ spBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) 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)
我已經嘗試了一千東西,但我只是無法得到它的工作。所以,請,有人能指出我做錯了什麼嗎?我怎樣才能正確建立基於jsp形式的信息的java對象?
在此先感謝!
我也試過,我仍然得到同樣的錯誤。可能是jsp文件有問題嗎? – BadWolf
他們已經爲'居民'擁有了@ @ ModelAttribute。 –
如果有幫助,即使我註釋掉控制器方法,也會得到相同的錯誤。這就是爲什麼我猜jsp有問題。 – BadWolf