2014-06-16 6 views
2

나는이 도구를 사용하여 새롭다. 그래서 이것은 매우 어리 석다. 내가 "사용자"테이블 내 데이터베이스의 모든 사용자를 보여되어있어 내 웹 애플리케이션을 (액세스하려고 할 때.봄 MVC + 최대 절전 모드 + JSP

HTTP ERROR 500 

Problem accessing /maven-archetype-webapp/index. Reason: 

    Neither BindingResult nor plain target object for bean name 'contact' available as request attribute 
Caused by: 

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'contact' available as request attribute 
    at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141) 
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) 
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188) 
    at org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:130) 
    at org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:120) 
    at org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:90) 
    at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) 
    at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) 
    at org.apache.jsp.WEB_002dINF.jsp.usuario_jsp._jspx_meth_form_label_0(org.apache.jsp.WEB_002dINF.jsp.usuario_jsp:299) 
    at org.apache.jsp.WEB_002dINF.jsp.usuario_jsp._jspx_meth_form_form_1(org.apache.jsp.WEB_002dINF.jsp.usuario_jsp:222) 
    at org.apache.jsp.WEB_002dINF.jsp.usuario_jsp._jspService(org.apache.jsp.WEB_002dINF.jsp.usuario_jsp:106) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) 
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) 
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209) 
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:266) 
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225) 
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1012) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at 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"; 
    } 

} 

Usuario.jsp

<%@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> 

UsuarioServiceImpl.java (인터페이스 UsuarioService.java의 구현)는 DAO를 함께 계속 할 필요가 있다면

@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); 
    } 

} 

내가 ... 문제는 알 수없는 오류 이름에 "연락이 "나는 그 이름을 전혀 사용하지 않는다. ("Usuario "를 사용한다.) 그리고 네, 물어보기 전에, 나는 "contact"라는 단어를 가진 인터넷 코드를 대체 했었지만, 모든 코드를 제 코드로 바꿨습니다. 어쩌면 이것은 혼란을 야기했을 지 모르지만 나는 지금 정말로 없어졌습니다. 당신이 나를 도울 수 있기를 바랍니다. 당신이 이해하지 못하는 것이 있으면 주저하지 말고 물어보십시오.

정말 고마워요!

+0

난 당신이 당신이 어떤 튜토리얼했다 말했다 배포 된 코드를 엉망 생각 -이 : 봄이 모델은 아래 그림과 같이이 작업을 수행 모델의 ModelAndView 객체가 online.i 당신이 당신의 서버에 그 전쟁을 배치했고 당신이 코드 상단에서 변경을하고 재배포를 시도한 것 같아요. 그래서 내가 이미 배포 된 전쟁을 삭제하는 것입니다, 당신의 서버를 다시 시작합니다. 깨끗한 Maven 빌드를 다시 한 번 수행하고 다시 배포하십시오. – vikeng21

+0

죄송 합니다만 이미 배포 된 전쟁은 어떻게 삭제합니까? (내가 진정한 초보자라고 말했어). –

+0

Tomcat을 사용하는 경우/webapps/folder로 이동하여 문제가있는 경우에 대비하여 Google에서 배포 한 전쟁을 삭제하십시오. weblogic 응용 프로그램 서버를 사용하는 경우 weblogic 콘솔을 열고 war 배포가있는 배포 섹션으로 이동하여 제거하십시오. 당신은 할 수있는 방법도 이것에 대한 구글 수 있습니다. 이 모든 작업을 수행하기 전에 서버를 중지하십시오 (웹 로직에서는 필요하지 않음). – vikeng21

답변

0

여기서 제안 할 수있는 것은 빌드가 준비되어있는 대상 폴더를 삭제하고 빌드 및 전쟁을 다시 만든 다음 실행하여 문제가 지속되면 필요한 파일을 알려주십시오. 감사합니다

+0

당신이 나에게 말한대로했는데 문제가 지속됩니다. –

+0

ur 서버의 캐시 된 파일을 삭제할 수 있습니까, tomcat, temp 폴더의 작업 폴더에서 말하고 다시 시도하십시오 – Programmer

+0

도움이되지 않았습니다. 내가 잘못했는지 모르겠지만 Jetty_Home에서 찾을 수있는 모든 캐시를 삭제했습니다. Maven 프로젝트를 지우고 다시 빌드하십시오. 사실, 같은 코드로 완전히 새로운 프로젝트를 만들었습니다. 항상 같은 오류. "contact"는 계속 방해가됩니다./ –

1

당신은 당신의 물건을지도에 넣기 만합니다. http 요청에 개체를 넣어야합니다.

<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> 
+0

그러나 mav.put 또는 model.put은 Model 및 ModelandView 객체 유형에도 정의되어 있지 않습니다. –

+0

죄송합니다. 올바른 방법으로 답변을 업데이트했습니다. –

+0

답변 주셔서 감사합니다. 그러나 도움이되지 않았습니다. 같은 문제. 이 오류는 존재하지 않는 모델에 관한 것이므로 Jetty 또는 다른 캐시 된 전쟁 파일에 문제가 있어야합니다. 이전에 배치 한 전쟁 중 변경 전의 모델 이름이 "contact"였던 것 같습니다. 아래의 사람들은 그것을 말했지만 아직 해결 방법이 없습니다 :/ –

관련 문제