Java Spring MVC+;冬眠+;JSP

Java Spring MVC+;冬眠+;JSP,java,spring,hibernate,model-view-controller,Java,Spring,Hibernate,Model View Controller,我刚开始使用这些工具,所以你可能会觉得这很愚蠢 当我试图访问我的webapp(我应该在其中显示数据库“user”表中的每个用户)时,我遇到了这个错误 HTTP错误500 访问/maven原型webapp/index时出现问题。原因: bean名称“contact”的BindingResult和普通目标对象都不能作为请求属性使用 原因: java.lang.IllegalStateException:bean名称“contact”的BindingResult和普通目标对象都不能作为请求属性使用 位

我刚开始使用这些工具,所以你可能会觉得这很愚蠢

当我试图访问我的webapp(我应该在其中显示数据库“user”表中的每个用户)时,我遇到了这个错误

HTTP错误500
访问/maven原型webapp/index时出现问题。原因:
bean名称“contact”的BindingResult和普通目标对象都不能作为请求属性使用
原因:
java.lang.IllegalStateException:bean名称“contact”的BindingResult和普通目标对象都不能作为请求属性使用
位于org.springframework.web.servlet.support.BindStatus。(BindStatus.java:141)
位于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)
位于org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
位于org.apache.jsp.WEB\u 002dINF.jsp.usuario\u jsp.\u jspx\u meth\u form\u label\u 0(org.apache.jsp.WEB\u 002dINF.jsp.usuario\u jsp:299)
在org.apache.jsp.WEB\u 002dINF.jsp.usuario\u jsp.\u jspx\u meth\u form\u form\u 1(org.apache.jsp.WEB\u 002dINF.jsp.usuario\u jsp:222)
位于org.apache.jsp.WEB_002dINF.jsp.usuario_jsp.\u jsp服务(org.apache.jsp.WEB_002dINF.jsp.usuario_jsp:106)
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
位于org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
位于org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)
位于org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
位于org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209)
位于org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:266)
位于org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225)
位于org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1012)
位于org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
位于org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
位于org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
位于org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
位于org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
位于org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
位于org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
位于org.mortbay.jetty.Server.handle(Server.java:326)
位于org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
位于org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
位于org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
位于org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
位于org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
位于org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
位于org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
所以我将向您发送我的控制器、JSP和服务实现

UsuarioController.java

package org.maven.archetypes.Project.controller;


import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.maven.archetypes.Project.form.Usuario;
import org.maven.archetypes.Project.service.UsuarioService;


@Controller
public class UsuarioController {

    @Autowired
     private UsuarioService usuarioService;
    @RequestMapping("/index")
     public String listUsers(Map<String, Object> map) {
            map.put("usuario", new Usuario());
            map.put("usuarioList", usuarioService.listUsuario());
            return "usuario";
     } 


    @RequestMapping(value = "/add", method = RequestMethod.POST)
     public String addUsuario(@ModelAttribute("user")
        Usuario user, BindingResult result) {
        usuarioService.addUsuario(user);
        return "redirect:/index";
     }

    @RequestMapping("/delete/{email}")
     public String deleteUsuario(@PathVariable("email")
     String email) {
            usuarioService.removeUsuario(email);
            return "redirect:/index";
     }

}
package org.maven.archetypes.Project.controller;
导入java.util.Map;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Controller;
导入org.springframework.validation.BindingResult;
导入org.springframework.web.bind.annotation.ModelAttribute;
导入org.springframework.web.bind.annotation.PathVariable;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RequestMethod;
导入org.maven.archetypes.Project.form.Usuario;
导入org.maven.archetypes.Project.service.UsuarioService;
@控制器
公共类用户控制器{
@自动连线
package org.maven.archetypes.Project.controller;


import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.maven.archetypes.Project.form.Usuario;
import org.maven.archetypes.Project.service.UsuarioService;


@Controller
public class UsuarioController {

    @Autowired
     private UsuarioService usuarioService;
    @RequestMapping("/index")
     public String listUsers(Map<String, Object> map) {
            map.put("usuario", new Usuario());
            map.put("usuarioList", usuarioService.listUsuario());
            return "usuario";
     } 


    @RequestMapping(value = "/add", method = RequestMethod.POST)
     public String addUsuario(@ModelAttribute("user")
        Usuario user, BindingResult result) {
        usuarioService.addUsuario(user);
        return "redirect:/index";
     }

    @RequestMapping("/delete/{email}")
     public String deleteUsuario(@PathVariable("email")
     String email) {
            usuarioService.removeUsuario(email);
            return "redirect:/index";
     }

}
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
 <title>Spring 3 MVC Series - Contact Manager</title>
</head>
<body>
<!-- 

<h3>Usuarios</h3>
<c:if test="${!empty usuarioList}">
<table class="data">
<tr>
 <th><spring:message code="label.firstname"/></th>
 <th><spring:message code="label.email"/></th>
 <th>&nbsp;</th>
</tr>
<c:forEach items="${usuarioList}" var="usuario">
 <tr>
 <td>${usuario.lastname}, ${usuario.firstname} </td>
 <td>${usuario.email}</td>
 <td><a href="delete/${usuario.email}">Eliminar</a></td>
 </tr>
</c:forEach>
</table>
</c:if> 

</body>
</html>
@Service
public class UsuarioServiceImpl implements UsuarioService {

     @Autowired
     private UsuarioDAO UsuarioDAO;

     @Transactional
     public void addUsuario(Usuario user) {
     UsuarioDAO.addUsuario(user);
     }

     @Transactional
     public List<Usuario> listUsuario() {

     return UsuarioDAO.listUsuario();
     }

     @Transactional
     public void removeUsuario(String email) {
     UsuarioDAO.removeUsuario(email);
     }  

}
<code>
@RequestMapping("/index")
     public String listUsers(Model model) {
            model.addAttribute("usuario", new Usuario());
            model.addAttribute("usuarioList", usuarioService.listUsuario());
            return "usuario";
     }

</code> 
<code>
@RequestMapping("/index")
     public ModelAndView listUsers() {
           ModelAndView mav = new ModelAndView("usuario");
            mav.addObject("usuario", new Usuario());
            mav.addObject("usuarioList", usuarioService.listUsuario());
            return mav;
     }
 </code>