当前位置: 首页 > 知识库问答 >
问题:

不带commandName的Spring表单[重复]

宗政洋
2023-03-14

我是Spring的新手,我有个问题。我有一个表单,用于向控制器发送信息。我不需要或不想让bean备份表单,因此我将表单中的commandName属性留空,如下所示:

<form:form action="getReportFile.html" method="post">
            <table>
                <tr>
                    <td><form:label path="field1">Field1:</form:label></td>
                </tr>
                <tr>
                    <td><form:select path="field1" items="${FieldMap}" />                        
                    </td>
                </tr>
               <tr>
                   <td><form:label path="field2">Field2:</form:label></td>
               </tr>
               <tr>
                   <td><form:input path="field2"/></td>
               </tr>
               <tr>
                   <td><input type="submit" value="Submit" /></td>
               </tr>
           </table>
       </form:form>

我得到以下错误:

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute

我可以在这里看到,当你不给一个值命令名称它使用默认的'命令',但是,我必须配置任何其他东西吗?我应该把一个命令bean放在dispatcher-servlet.xml中吗?那豆子怎么会?

我只需要一张表格把信息发送给控制器。我真的需要创建一个bean来支持它吗?

共有2个答案

丁毅庵
2023-03-14

我不知道是否有可能在SpringMVC中创建一个没有支持bean的表单,但我认为如果不使用bean,您将无法从SpringMVC中获得很多。您正在使用的那些表单标记(如form:input)绑定到支持bean的属性,这允许您附加验证、错误消息、类型转换等内容。您的目的只是将表单发布到Spring控制器,并使用类似“request.getParameter('field1')”的代码处理服务器上的所有表单字段吗?然后我建议只使用一个简单的HTML表单。

干亮
2023-03-14

如果您根本不需要命令对象,那么就避免使用Spring表单,只需使用HTML表单即可。

所以,改变

<form:form action="getReportFile.html" method="post">
     .
     .
     .
</form:form>

<form action="getReportFile.html" method="post">
     .
     .
     .
</form>

命令对象确实不是强制性的。这是强制性的,只有当你使用Spring的形式,如

<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

如果使用超文本标记语言表单,则必须使用request.getParameter(参数名)方法接收请求参数。

如果没有表单支持bean,就不能使用Spring标记,因为它确实需要一个!该标记上的“path”属性应该指定数据绑定的模型bean属性的路径。

http://forum.springsource.org/showthread.php?83532-如何在没有命令对象的情况下创建窗体

 类似资料:
  • 发送表单数据时使用命令名称和模型属性有什么区别? 和 我应该在哪个时间点使用它们中的任何一个?

  • 我在jsp文件中有此表单: 这个广告表单类: 在相应的控制器中,我使用此参数接收数据: 问题是当csrf在sping-security.xml被禁用它的工作正常-我可以看到选择的文件在广告orm.get图像(),但当我启用csrf它停止工作: 我试图通过以下步骤解决这个问题: > 我定义了filterMultipartResolver:

  • 问题内容: Controller @Spring : 问题答案: 我的方法存在问题: 我为MultiPartResolver创建了一个bean。解决问题后的理解是,仅当你需要特定类型的文件或非常特定于应用程序的文件时,才定义此bean。尽管我希望对此有更多了解,并希望能从stackoverflow的技术人员那里听到。 当前问题的解决方案: 我会给出我的源代码, HTML: AngularJS: s

  • 问题内容: 如果我有这样的表格: 如何提交而不通过JavaScript / Jquery重定向到另一个视图?我从StackOverflow阅读了很多答案,但是所有这些答案都将我重定向到POST函数返回的视图。 问题答案: 为了实现您想要的,您需要使用jquery ajax,如下所示: 更新:( 基于下面的评论) 试试这个: UPDATE 2 (OP添加了此部分,因为这是他的最终解决方案) 这完美无

  • 我正在学习Spring Boot Security入门第五部分,以保护我的RESTful微服务。 我打算实现的简单流程是:- > 如果未经身份验证,用户将被重定向到一个自定义登录页,地址是'/login'。 用户提供他的凭据。 上面提到的链接中的入门指南使用了在。properties或。yml文件中配置的基本Auth和虚拟用户。 这是我尝试配置的方式:- 单击授权endpoint会将我重定向到“h

  • 我在我的Spring Boot应用程序中使用Spring Security,似乎Thymeleaf授权无法正常工作。 我有一个带有以下代码的Thymeleaf模板: 举例如下:https://github.com/thymeleaf/thymeleaf-extras-springsecurity 但是,显示的唯一内容是和,并且无论用户的角色如何,授权始终被忽略。 我的胸腺配置是: 我对使用以下依赖