からデータを取得するとき、私はいくつかの時間のために私をバック保持し、MavenのWebアプリケーションとかなり厄介なとイライラする問題を抱えています。 はどうやら、私の以前のGoogle検索から、これは一般的なSpring MVCのエラーですが、私はこれまで、インターネット上で提供されるものの間で必要な解決策を見つけることができないのです。私はSpringの初心者であり、一般的なMVCの概念であることに注意してください。Javaの春 - IllegalStateExceptionがJSPフォーム
私は、建物管理(住民、賃貸料計算など)を管理するはずのWebアプリケーションを持っています。これは私のディスパッチャ・サーブレットです
@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;
}
}
:私はSpring MVCのは、Hibernate、Javaの1.8、Tomcatの8サーバーコンテナ、およびSQL Server 2014 はまず、これは、住民と呼ばれるタイプbuldingの住民のための私のPOJOで使用します.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名用プレーンなターゲットオブジェクトのいずれも「住民の要求属性として利用できる
DESCRIPサーバーがこのエラーを処理できないという内部エラーが発生しました。
例外org.apache.jasper.JasperExceptionが: java.lang.IllegalStateException:BindingResultもBean名要求 属性 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) 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)
根本原因java.lang.IllegalStateException:どちらBindingResultも要求 として使用可能なBean名 '住民' の プレーンなターゲットオブジェクト属性 org.springframework.web.servlet.support.BindStatus。(BindStatus.java:144) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) org.springframework.webプロパティ。 mElementTag.java:154) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag。プロパティ。 Javaの:142) org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) ORG .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
彼らはすでに 'inhabitant'に対して' @ ModelAttribute'を持っています。 –
もし私がコントローラメソッドをコメントアウトしても、私は同じエラーが発生します。だからこそ、私はjspに何か問題があると思うのです。 – BadWolf