【问题标题】:JakartaVelocity 1.7 form submission with Spring MVC, getting null values in controller使用 Spring MVC 提交 JakartaVelocity 1.7 表单,在控制器中获取空值
【发布时间】:2015-01-04 00:50:27
【问题描述】:

我正在从速度生成一个表单并将表单值提交给 spring 控制器。在 spring 控制器中,我得到“null”值。

表单:test.vm,在提交调用控制器时使用@RequestMapping /testform 和 post 方法

<html>
  <body>
  <form method="POST" action="/testform">
  Select testtype:
  <select name="test">
  <option value="test1">test1</option> 
  <option value="test2">test2</option>
  </select>
  <p>
  <input type="submit" value ="submit">
  </form>
  </body>
  </html>

Controller code:

    @RequestMapping(value = "/testform", method = RequestMethod.POST)

    public ModelAndView addtest(@ModelAttribute("test")ReadTest test, BindingResult result) {

    System.out.println("in test controller");

    System.out.println("test:" + test.gettest());
    return new ModelAndView("test");
}

ReadTest.java 是带有 getter 的 java 类。

public class ReadTest {
public String test;
public String gettest() {
return test;

} }

提交表单值后,控制器中的 test.gettest() 返回 'null' 你能帮我在哪里做错了吗?感谢您的帮助。

【问题讨论】:

    标签: java spring forms spring-mvc velocity


    【解决方案1】:

    添加 commandName = "test"。就像这样:

    <form method="POST" action="/testform" commandName ="test">
    

    【讨论】:

    • 谢谢,b/w,这里的测试是什么?是在@ModelAttribute("test") 中定义的名称吗?
    • 我仍然在 coroller 中看到空值,commandName 属性没有解决我的问题,也尝试使用 modelAttribute。
    【解决方案2】:

    您好,您必须为其添加命令名称,例如

    <form method="POST" commandname="test" action="/testform"> 
    

    我认为您缺少 ReadTest.java 中的设置器。请添加设置器并检查一次。 示例代码请参考此link一次。

    【讨论】:

      猜你喜欢
      • 2015-12-28
      • 1970-01-01
      • 2017-09-22
      • 2017-03-29
      • 2017-11-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 2016-03-21
      相关资源
      最近更新 更多