- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
无论我做什么,似乎都无法解决这个问题(查看其他 stackoverflow 问题)。 Spring 的新手,并尝试更详细地了解系统。
我与“UserController”和“newUserForm.jsp”一起创建的“UserBean”是“FormBean”、“formController”和“form.jsp”的小型副本,它已经在示例应用程序中就位.示例应用程序本身可以从以下位置获得:http://www.infoq.com/presentations/Mastering-Spring-MVC-3
这是UserBean.java包 org.springframework.web.app.user;
import org.hibernate.validator.constraints.NotEmpty;
/**
* Created by apil.tamang on 1/12/16.
*/
public class UserBean {
@NotEmpty
private String firstName;
@NotEmpty
private String lastName;
@NotEmpty
private String email;
public UserBean(){
}
public UserBean(String firstName, String lastName, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
@Override
public String toString() {
return "UserBean[" +
"firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", email='" + email + '\'' +
']';
}
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
这是“UserController.java” Controller 文件:
package org.springframework.web.app.user;
import org.springframework.mvc.extensions.ajax.AjaxUtils;
import org.springframework.samples.mvc.form.FormBean;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.validation.Valid;
/**
* Created by apil.tamang on 1/12/16.
*/
@Controller
@RequestMapping("/user")
@SessionAttributes("userBean")
public class UserController {
@ModelAttribute
public void ajaxAttribute(WebRequest request, Model model) {
model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(request));
}
@ModelAttribute("userBean")
public UserBean createFormBean() {
return new UserBean();
}
@RequestMapping(method=RequestMethod.GET)
public void user() {
}
@RequestMapping(method=RequestMethod.POST)
public String processSubmitNewUser(@ModelAttribute("userBean") UserBean userBean,
@ModelAttribute("ajaxRequest") boolean ajaxRequest,
Model model, RedirectAttributes redirectAttributes){
String message="User data received. User details: "+userBean.toString();
if(ajaxRequest){
//prepare model for rendering success message in this request
model.addAttribute("message",message);
return null;
}else{
//store success message for rendering on the next request after redirect.
return "redirect:/user";
}
}
}
这是 newUserForm.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ page session="false" %>
<c:if test="${!ajaxRequest}">
<html>
<head>
<title> Title of New User form.</title>
<link href="<c:url value="/resources/form.css" />" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<c:url value="/resources/jquery/1.6/jquery.js" />"></script>
</head>
<body>
</c:if>
<div id="formsContent">
<%-- Wonder why the modelAttribute is needed! Probably to bind form
parameters to UserBean parameters --%>
<form:form id="newUserForm" method="POST" modelAttribute="userBean" cssClass="cleanform" action="/user/add">
<div class="header">
<h2> New User Form </h2>
<c:if test="${not empty message}">
<div id="message" class="success">${message}</div>
</c:if>
</div>
<fieldset>
<legend> Personal Info </legend>
<form:label path="firstName">
First Name
</form:label>
<form:input path="firstName"/>
<form:label path="lastName">
First Name
</form:label>
<form:input path="lastName"/>
<form:label path="email">
First Name
</form:label>
<form:input path="email"/>
</fieldset>
</form:form>
<script type="text/javascript">
$(document).ready(function(){
$("#newUserForm").submit(function(){
$.post(
$(this).attr("action"),
$(this.serialize(),
function(html){
$("$formsContent").replaceWith(html);
$('html,body').animate({
scrollTop: $('#message').offset().top
},500);
return false;
}
);
});
});
</script>
</div>
<c:if test="${!ajaxRequest}">
</body>
</html>
</c:if>
以下是浏览器中的堆栈跟踪:
type Exception report
message An exception occurred processing JSP page /WEB-INF/views/newUserForm.jsp at line 31
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/newUserForm.jsp at line 31
28: <fieldset>
29: <legend> Personal Info </legend>
30:
31: <form:label path="firstName">
32: First Name
33: </form:label>
34: <form:input path="firstName"/>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:465)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
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:621)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
root cause
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'userBean' available as request attribute
org.springframework.web.servlet.support.BindStatus.<init>(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.LabelTag.autogenerateFor(LabelTag.java:130)
org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:120)
org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:90)
org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
请注意,controller.xml 中添加了以下行以将对/user 的调用定向到/newUserForm.jsp
<mvc:view-controller path="/user" view-name="newUserForm"/>
这是怎么回事?我认为它必须与 jsp 文件中声明的 modelAttribute="userBean"做一些事情,但我不能确定。花了最后一个小时试图弄明白,同时意识到为“formBean”创建的等效结构工作得很好!欢迎任何帮助。
最佳答案
问题是你的“UserController.java”没有在 Spring 采摘。
在controllers.xml中添加Scanning的包名,如下:
<context:component-scan base-package="org.springframework.samples.mvc org.springframework.web.app.user" />
或者把org.springframework.web.app.user的包名改成org.springframework.samples.mvc.web.app.user
在 UserController.Java 中返回您要加载的表单,即“newUserForm.jsp”像这样:
@RequestMapping(method = RequestMethod.GET)
public String user() {
return "newUserForm";
}
关于java - spring-mvc错误: Neither BindingResult nor plain target object for bean name 'userBean' available as request attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34781787/
有什么区别 和 您能解释一下这两者之间有什么区别吗? 最佳答案 它是一个 XML 命名空间,用于分隔可能存在冲突的元素名称,因此没有真正的区别。 XML Namespaces 关于java -
我刚刚浏览了两个 Web 应用程序,在两个项目的“applicationContext.xml”文件中都有一个标记 ... 另一个是 ... 谁能给我解释一下有什么区别吗? 最佳答案 没有语
我一直在尝试了解 WebSphere Commerce 中的 Java bean,但我真的很困惑。请帮帮我。我需要知道: What is the difference between EntityBe
自从我们更新到 grails 2.0.1(从 2.0.0 开始)以来,通过 bean 字段显示的所有 bean 都错误地显示为“withBean”字段的第一个属性。在我下面发布的示例中,所有 [fir
我有一个 bean,我将另一个 beanlist 放入其中,并且我想访问该内部 bean。 我的第一个 Bean 是: public class FirstDTO { private String F
我正在尝试将 CSS 和 JS 添加到 spring MVC 项目中的 JSP 页面,以便我在 dispatcher-servlet.xml 中包含了 js/css 文件夹的引用,如下所示:
当我将请求传递给 RestController 时,出现以下错误。 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreExcept
我看到很多示例将 bean 标记为实体 bean (@Entity) 和命名 bean (CDI),以避免创建 2 个类(托管 bean 和实体 bean)并利用 Bean 验证以便可以执行验证在客户
在我的理解中, session 总是意味着有状态。考虑 servlet session 对象, 想想 cookie。如果 session 是无状态的,我认为我们根本不需要 session 。 在jee
我完全是Spring框架的初学者。我当时正在玩一个创建对象实例的示例。因此需要您的帮助! 看看这个例子: MainApp.java: import org.springframework.contex
这个问题在这里已经有了答案: What is a JavaBean exactly? (23 个回答) 关闭 7 年前。 我已经阅读了有关 EJB、Java Beans 的内容,但是我仍然对“bea
我刚开始使用 Spring-Framework,实际上我正在使用 spring-boot 库。我有以下问题: 我知道在 @Configuration 类中使用 @Bean 注册的 bean 默认是单例
我对下面提到的场景中使用Spring Framework时会创建的实例数量有疑问: bean配置是这样的 or 默认情况下,bean "a"有 singleton scope .所以
在我的 Spring-Module.xml 中,我有两个 bean: ... ... 我像这样实例化我的类: Applicat
@Autowired private Map departments; 我的 spring 配置文件 只要使用 @Autowired 需要日期,它就可以正常工作 同样, 如何使用没有属性
我已经为 ComboBox 设置了 ContainerDataSource this.comboBox.setContainerDataSource(container)。这个容器是一个 BeanIt
为了支持流畅的编程风格,我最近修改了我们的 Java Beans setter 方法以返回 Bean 类。但是现在 Java Beans Activation Framework (rel 1.1)
有人可以告诉我在我的 ApplicationContext 中我必须使用 beans:bean 而不是 bean 的什么以及如何修复它。
我有如下配置: batch:job id="reconciliationJob" job-repository="jobRepository" restartable="true" 在应用程序上下文启
我已经为 Test_flow 创建了简单的测试套件,但是当我尝试运行该流程时出现错误。 java.lang.RuntimeException: org.mule.api.config.Configur
我是一名优秀的程序员,十分优秀!