HTML 5 输入类型提交不会作为参数传递给控制器
Posted
技术标签:
【中文标题】HTML 5 输入类型提交不会作为参数传递给控制器【英文标题】:HTML 5 input type submit does not get passed as a parameter to the controller 【发布时间】:2012-01-02 14:33:39 【问题描述】:我有一个带有两个提交按钮的表单,用于指定 html 5 中的特定操作值。
我想获取 action1 或 action2 的值(以提交者为准)。
<input type="submit" name="action2" value="action1"/>
<input type="submit" name="action1" value="action2"/>
服务器端:
ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors)
String act1 = request.getParameter("action1");
String act2 = request.getParameter("action2");
act1 和act 2 均为空。而且我调试的时候multipartParameters.keySet不包含action1和action2。这在 HTML 4 中不是问题。在 html 5 中有没有新的方法可以做到这一点?除了使用隐藏字段..
【问题讨论】:
HTML5 在这里没有改变任何东西。请向我们展示提交按钮的 HTML。 【参考方案1】:使用formaction标签来指定点击提交时发送的url(覆盖表单的action属性)
如果您使用的是 spring 3 mvc(注释),则将每个操作请求 url 映射到一个方法
如果你使用的是 spring 2 mvc (xml)
-
将调度程序中的 URL 指定到控制器
使用request.getRequestURI然后解析url来判断动作
【讨论】:
以上是关于HTML 5 输入类型提交不会作为参数传递给控制器的主要内容,如果未能解决你的问题,请参考以下文章
如何通过不提交当前会话事务将 DataTable 作为参数传递给存储过程?
如何将从表单提交中检索到的参数作为参数传递给 django 中的函数