当我在 Spring 3 + Tiles 2 中单击表单上的提交时出现此错误...我不知道,但其他不是表单的页面工作正常...代码是:
错误 500--内部服务器错误 java.lang.ClassCastException: org.springframework.web.bind.ServletRequestDataBinder 无法在 org.springframework.web.bind.annotation.support 中转换为 org.springframework.web.bind.support.WebRequestDataBinder。 HandlerMethodInvoker.doBind(HandlerMethodInvoker.java:754) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doBind(HandlerMethodInvoker.java:744) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments( HandlerMethodInvoker.java:296) 在 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:163) 在 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java: 354)在 org.springframework.web.servlet.mvc.annotation。AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:342) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:763) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:709) at org .springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:613) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:536) at javax.servlet.http.HttpServlet.service(HttpServlet.java :727) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 在 weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) 在 weblogic.servlet.internal.StubSecurityHelper.invokeServlet( StubSecurityHelper.java:125) 在 weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) 在 weblogic。servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java: 3681) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext .java:2277) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread. java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176)ServletStubImpl.execute(ServletStubImpl.java:183) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) 在 weblogic .security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) ) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176)ServletStubImpl.execute(ServletStubImpl.java:183) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) 在 weblogic .security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) ) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176)在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) 在 weblogic.security .acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic .work.ExecuteThread.run(ExecuteThread.java:176)在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) 在 weblogic.security .acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic .work.ExecuteThread.run(ExecuteThread.java:176)internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java: 321) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java :2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176)internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java: 321) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java :2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176)3717) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.security.service.SecurityManager.runAs (SecurityManager.java:120) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) 在 weblogic.servlet.internal.ServletRequestImpl。在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176) 运行(ServletRequestImpl.java:1454)3717) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.security.service.SecurityManager.runAs (SecurityManager.java:120) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) 在 weblogic.servlet.internal.ServletRequestImpl。在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176) 运行(ServletRequestImpl.java:1454)java:321) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext .java:2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java: 176)java:321) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext .java:2183) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java: 176)ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176)ExecuteThread.execute(ExecuteThread.java:207) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
package com.ultimatix.framework.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;
import com.ultimatix.framework.vo.Contact;
@Controller
@SessionAttributes
public class ContactController
{
@RequestMapping(value = "/addContact", method = RequestMethod.POST)
public ModelAndView addContact(@ModelAttribute("command")Contact _objContact)
{
System.out.println(_objContact.toString());
return new ModelAndView("welcome");
}
@RequestMapping("/contact")
public ModelAndView showContacts()
{
return new ModelAndView("contact", "command", new Contact());
}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Spring 3.0 + Tiles 2.0 - Contact Manager</title>
</head>
<body>
<h2 align="center">Contact Manager</h2>
<form:form method="post" commandName="command" action="addContact.do">
<table border="0" cellpadding="2" cellspacing="2" align="center"
width="50%">
<tr>
<td width="30%">First Name</td>
<td width="70%"><form:input path="strFirstName" /></td>
</tr>
<tr>
<td width="30%">Last Name</td>
<td width="70%"><form:input path="strLastName" /></td>
</tr>
<tr>
<td width="30%">Email</td>
<td width="70%"><form:input path="strEmailId" /></td>
</tr>
<tr>
<td width="30%">Contact No.</td>
<td width="70%"><form:input path="strContactNo" /></td>
</tr>
<tr>
<td width="30%" align="center"><input type="submit" value="Add Contact" /></td>
<td width="70%"><input type="reset" value="Clear Details" /></td>
</tr>
</table>
</form:form>
</body>
</html>