我的问题是,是否有必要对表单进行' commandName '绑定,为输入设置' path '绑定?
我有一个工作流程,需要用户从一系列的ajaxy选择框中选择数据。因此表单不能直接映射到任何模型。为了适应这种形式而添加另一个模型似乎毫无意义,而这个表单上的所有内容都将由ajax驱动。 现在我知道我总是可以写一个经典的表格并选择标签,但我想在这里利用弹簧标签,例如:
<form:options items="${list}" itemLabel="name" itemValue="id"/>
允许我轻松填充表单项。而且我想保持项目的一致性并使用spring标签。
我想知道关于这个主题的想法和意见。
谢谢!
PS:我来自铁轨背景上的红宝石,习惯了大量的语法糖:如果问题听起来很愚蠢或者答案明显,请原谅我。答案 0 :(得分:8)
我不知道它是否有用,但在这里:
如果未在表单中设置'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>
希望它有用。
答案 1 :(得分:7)
如果我们没有将commandName添加到spring form标签,则会引发异常,因为如果IllegalStateException:BindingResult和普通目标对象“command”都不能作为请求参数...