我在Spring启动应用程序中创建了一个jsp页面,该应用程序在一个表中有多个表单。每个表单都有自己的提交按钮。在每种形式中,我保留了一个隐藏类型的输入元素,其值需要作为请求参数传递给Controller类。所以表单看起来像这样:
<form action="getNode" method="get">
<input type="hidden" id="nodeId" value="${nodeid}">
<table>
<!-- Displaying node related data -->
</table>
</form>
控制器类的请求映射如下:
@RequestMapping(value="/getNode", method=RequestMethod.GET)
public String monitor(ModelMap model, @RequestParam("nodeId") String nodeId)
{
model.put("selectedNodeId", nodeId);
return "getNode";
}
当我运行Spring应用程序并单击表单按钮时,我在控制台上遇到以下异常: org.springframework.web.bind.MissingServletRequestParameterException:必需的字符串参数'nodeId'不存在
我现在对如何将表单中的值传递给控制器类感到困惑。我也试过使用@ModelAttribute,但是我得到了同样的错误。我也尝试过使用POST方法,但没有成功。我基本上不想在浏览器URL中显示通过表单提交的值。所以寻找其他选择。
答案 0 :(得分:0)
这是我身边的一个愚蠢的错误。我没有给输入隐藏类型指定名称,而是给了它一个id。因此控制器无法选择参数。 一旦我将id更改为name,它就可以了!