【问题标题】:Why is my post not give data to my controller from my form?为什么我的帖子没有从我的表单向我的控制器提供数据?
【发布时间】:2014-04-26 10:02:45
【问题描述】:

我正在开发一个 Sprin MVC 应用程序,并且我有一个表单,其中包含一个 UI jsp (welcome.jsp) 中的表格,当单击提交按钮时,我试图将表单中的数据打印到Web 应用程序控制台。从那里我打算解析选中的复选框,然后让控制器将“选中”数据发送回数据库,以更新到应用程序流中的下一个状态。

到目前为止,表单是“成功”发布的,因为没有抛出错误或异常,但控制台中的打印语句是空白的,这让我认为没有发送任何数据,我非常欢迎任何帮助解决这个问题。

这是我所拥有的设置,不是实际代码,而是元素和方法的粗略设置。

welcome.jsp:

   <form action="<c:url value="/postPage" />"method="post" modelAttribute="rTable">
       <br/>
       <table>
           <thead>
               <tr>
                   <th>title1</th>
                   <th>title2</th>
                   <th>title3</th>
                   <th><select>
                        <option>option1</option>
                        <option>option2</option>
                   </select></th>  
               </tr>
           </thead>
           <tbody>
               <tr>
                   <td>value1</td>
                   <td>value1</td>
                   <td>value1</td>
                   <td><input type="checkbox" value="row_data_id" /></td>
               </tr>
           </tbody>
           <tfoot>
               <tr><td colspan="4"></td>
           </tfoot>
        </table>
        <br/>
    </form>

我的控制器中包含以下方法,并导入了所有必要的库:

controller.java

    @RequestMapping(value="/postPage", method = RequestMethod.POST)
    public String processUpdate(@ModelAttribute("rTable") String table, ModelMap model) {
        System.out.println(table);
        return "postPage";

    }

打印的控制台是这样的:

    .
    .
    .
    [3/19/14 16:36:53:625 EDT] 0000006a SystemOut     O 
    .
    .
    .

有谁知道为什么这不打印任何东西?我真的没有成功向控制器发送任何东西吗?

【问题讨论】:

  • 您希望table 具有什么价值?这里有一些你似乎不明白的严重事情:你如何提交表单以及它们是如何提交的,什么是请求参数,@ModelAttribute 是什么,HTML 的 form 和 Spring 的 &lt;form&gt; 标签之间的区别库。
  • 我希望表格在按下提交按钮时保持表格的当前状态。我是新手,所以如果我弄错了,请与我裸露。表单中的表是使用带有必要数据和 JSTL 标记的 bean 填充的。假设用户选中复选框,然后单击提交。从提交中,我想获取与复选框关联的数据并将其传递回 bean 或控制器,以便可以使用它来更新数据库。我以为这就是我正在做的,但我想不是。任何提示、指南或任何形式的帮助都会很棒。
  • 与其他人一起审查后。除了我之前所说的之外,我还发现了这一点。表单中的每个复选框都有一个与之关联的 ID。该 id 唯一地对应于其行中的数据。我需要了解如何获取标题行中选择框的值和选定复选框的 id 值到要发送到控制器以通过 jdbc 或休眠更新数据库。

标签: java html forms jsp spring-mvc


【解决方案1】:

经过大量阅读和反复试验,我找到了答案。我将用spring框架形式来解释。为了将数据通过表单从前端传递到后端,首先需要使用 spring form JSTL 标记将每个输入绑定到表单

例如

表格 => 表格:表格

输入=> 表单:输入

在 form:form 中它不是必需的,但是你应该有一个链接到 java 类的 modelAttribute,然后在每个输入中它们需要是一个路径属性,它链接到 modelAttribute 类中的一个变量和一个分配给变量的值。然后在提交时,这些值通过要在后端使用的 java 类上的 getter 和 setter 链接到后端。我希望我能解释清楚。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 2014-04-08
    • 2021-02-09
    • 1970-01-01
    • 2010-10-17
    相关资源
    最近更新 更多