我想使用form:radiobuttons标签从spring form tag lib获取输入表单用户,但我不想使用模型/命令对象,因为这是我作为输入获得的唯一值。所以我试过下方。
JSP:
<form action="submitform" method="post" >
<form:radiobuttons path="lang" items="${languages}"/>
<input type="submit" value="Save"/>
</form>
控制器的方法:
@RequestMapping("submitform")
public ModelAndView submitForm(@RequestParam("lang") List<String> lang) {
System.out.println("test:"+lang);
return new ModelAndView("test", "lang", lang);
}
当我提交表单时,应用程序会抛出错误。 HTTP状态400 - 必需列表参数“lang”不存在。
任何人都可以告诉我正确的方法,我有两个以下的要求
1.想要使用形式:radiobuttons。
2.不想使用模型/命令对象。
请帮忙
答案 0 :(得分:2)
如何使用form:radiobuttons with out model / command object
如果没有表单支持bean,则无法使用 spring的表单元素。 spring的表单元素标记的 path 属性应该指定模型/命令bean的数据绑定属性的路径。
Spring javadoc大概有<form:radiobuttons
:
| Attribute | Required? | Runtime Expression? | Description ------------------------------------------------------------ | path | true | true |Path to property for data binding
这意味着,在您没有用于数据绑定的模型/命令bean的情况下,spring将抛出一个带有以下消息的异常:
Neither BindingResult nor plain target object for bean name 'command' available
任何人都可以告诉我正确的方法吗
在jsp中使用纯HTML单选按钮并保留所有方法。 在jsp渲染radiobuttons像:
<form action="submitform" method="post" >
<%-- <form:radiobuttons path="lang" items="${languages}"/> --%>
<c:forEach items="${languages}" var="lng">
<input type="radio"
name="lang"
value="${lng}">${lng}
</c:forEach>
<input type="submit" value="Save"/>
</form>