gpt4 book ai didi

spring - org.apache.jasper.JasperException :/WEB-INF/views/home. jsp(行 : [25], 列:[1])找不到属性的设置方法:[commandName]

转载 作者:IT老高 更新时间:2023-10-28 13:53:14 30 4
gpt4 key购买 nike

我创建了一个 spring 表单,并希望从该表单提交并显示另一个 jsp 页面。当我运行这个项目时,我得到以下异常。谁能帮我理解为什么我会收到这个错误。

org.apache.jasper.JasperException: /WEB-INF/views/home.jsp (line: [25], column: [1]) Unable to find setter method for attribute: [commandName]
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:292)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:115)
org.apache.jasper.compiler.Generator$GenerateVisitor.evaluateAttribute(Generator.java:2998)
org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:3218)
org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomStart(Generator.java:2404)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1894)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2447)
org.apache.jasper.compiler.Node$Root.accept(Node.java:470)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
org.apache.jasper.compiler.Generator.generate(Generator.java:3657)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:256)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:384)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:345)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:170)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:312)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

JSP 文件:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<title>Home</title>
<style>
.error {
color: #ff0000;
}

.errorblock {
color: #000;
background-color: #ffEEEE;
border: 3px solid #ff0000;
padding: 8px;
margin: 16px;
}
</style>
</head>
<body>
<h2>Spring's form textbox example</h2>

<form:form method="POST" action="/customer" commandName="customer">
<form:errors path="*" cssClass="errorblock" element="div" />
<table>
<tr>
<td>Username :</td>
<td><form:input path="userName" />
</td>
<td><form:errors path="userName" cssClass="error" />
</td>
</tr>
<tr>
<td colspan="3"><input type="submit" />
</td>
</tr>
</table>
</form:form>

</html>

当我使用简单的 html 表单时,它可以正常工作,但如果我通过 spring 表单进行操作,则会出现错误。

Controller 类:

@Controller
public class HomeController {


@RequestMapping("/")
public String welcomePage()
{
return "home";
}


@RequestMapping(value="/customer", method=RequestMethod.POST)
public ModelAndView submitForm(@RequestParam("userName") String name)
{
ModelAndView mv = new ModelAndView("success");
mv.addObject("userName", name);
return mv;
}
}

最佳答案

您使用的是哪个版本的 Spring MVC?我有同样的问题,maven依赖是,

group id : org.springframework artifact id : spring-webmvc version : 5.0.2.RELEASE

在版本 5 之后,commandName 被删除,您应该改用 modelAttribute。我在这里找到它,https://jira.spring.io/browse/SPR-16037

我只是用 modelAttribute 更改了 commandName。

<form:form modelAttribute="goal">

关于spring - org.apache.jasper.JasperException :/WEB-INF/views/home. jsp(行 : [25], 列:[1])找不到属性的设置方法:[commandName],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46989072/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com