![](/img/trans.png)
[英]Spring 3.0.6 taglib - form:checkbox not creating hidden field
[英]Spring form does not submit when hidden field is added
我在jsp文件中有以下表单:
form.jsp
<table>
<form:form modelAttribute="command" action="daoselect.app">
<tr>
<td>Store this data</td>
<td><form:checkbox path="query"/>
</tr>
<form:hidden path="list"/>
<tr>
<td colspan="2" align="right"><input type="submit" value="Submit" /></td>
</tr>
</form:form>
这是我的app-servlet.xml文件的样子:
APP-servlet.xml中
<bean name="/daoselect.app" class="de.xx.DAOSelectController">
<property name="commandClass" value="de.xx.DAOSelectCommand"/>
<property name="xmlservice" ref="GuestBookDataXML"/>
</bean>
这就是DAOSelectCommand.java文件的样子
public class DAOSelectCommand {
private boolean query = false;
private List<GuestBookData> list;
public List<GuestBookData> getList() {
return list;
}
public void setList(List<GuestBookData> list) {
this.list = list;
}
public boolean getQuery() {
return query;
}
public void setQuery(boolean query) {
this.query = query;
}
public DAOSelectCommand() {
}
/*This constructor is used before loading the jsp file to add the list data to the hidden field*/
public DAOSelectCommand(List<GuestBookData> t) {
this.list = t;
}
我遇到的问题是,当我添加<form:hidden path="list"/>
字段并且浏览器试图加载daoselect.jsp文件时,不会执行DAOSelectController类的onSubmit函数。 如果我删除这个隐藏字段,则onSubmit函数正常执行。
为什么会这样?
问题是生成的<input type=hidden>
元素位于DOM树中的“意外”位置; 浏览器试图弄清楚这一点,但最终将元素重新定位到表外部,这将它放在表单之外。 这会导致以下<input type=submit>
的解释出现各种问题。 准确地确定将所有内容都放入该状态会发生什么变得棘手,并且实际上并不值得,因为修复是将<form:hidden>
移动到<form:checkbox>
旁边,这是在<tr>
,并将<form:form>
移到<form:form>
外 。 这将元素放在适当的DOM上下文中,用于那些类型的元素,阻止浏览器几乎不必努力弄清楚什么意思(并鼓励它做对了......)
<form:form modelAttribute="command" action="daoselect.app">
<table>
<tr>
<td>Store this data</td>
<td><form:checkbox path="query"/>
<form:hidden path="list"/></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" value="Submit" /></td>
</tr>
</table>
</form:form>
此外,始终关闭<td>
和<table>
元素; 它避免了各种各样的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.