Spring 3 MVC:是否可以具有没有'commandName'绑定的spring表单?


问题内容

我的问题是,是否有必要为表单提供一个“ commandName ”绑定,为输入提供一个“ path ”绑定?

我有一个工作流程,需要用户从一系列ajaxy选择框中选择数据。因此,表单无法完全直接映射到任何模型。添加另一个模型来容纳此表单似乎毫无意义,而此表单上的所有内容都将由ajax驱动。现在我知道我总是可以编写经典表格并选择标签,但是我想在这里利用spring标签的优势:

<form:options items="${list}" itemLabel="name" itemValue="id"/>

这使我可以轻松地按表单项进行填充。另外,我想保持项目的一致性并使用spring标签。

我想知道关于这个话题的想法和意见。

谢谢!

PS:我来自于红宝石,并且习惯于使用很多语法糖:P如果问题听起来很傻或答案很明显,请原谅我。


问题答案:

我不知道它是否有用,但是在这里:

如果未在表单中设置“ commandName”,则此属性的默认值将设置为“ command”。因此,如果您不设置它,则绑定数据将具有名称“
command”。

如果需要,可以使用绑定数据的名称进行设置。

================================================== ========================

不使用数据绑定的解决方案是:

我将向控制器方法添加HttpServletRequest请求参数,并像servlet一样获取参数。

@Controller 
public class SomeController {

    @RequestMapping(value = "/formAction", method = RequestMethod.POST)
    public String controllerMethod(HttpServletRequest request){  
        // this way you get value of the input you want
        String pathValue1 = request.getParameter("path1");
        String pathValue2 = request.getParameter("path2");
        return "successfulView";
    }

}

PS.:“path1”和“ path2”是您在输入中设置的路径名。我知道似乎没有正确使用Spring,但是Spring让我们使用了它。

形式如下:

<form:form method="post" action="/formAction">
    <form:input path="path1" />
    <form:input path="path2" />
    <input type="submit" value="Submit"/>
</form:form>

希望它有用。