首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MissingServletRequestParameterException:不存在必需的字符串参数

MissingServletRequestParameterException:不存在必需的字符串参数
EN

Stack Overflow用户
提问于 2017-11-20 22:57:12
回答 1查看 3.6K关注 0票数 1

我在一个spring boot应用程序中创建了一个jsp页面,该应用程序在一个表中包含多个表单。每个表单都有自己的提交按钮。在每个表单中,我都隐藏了一个输入元素类型,其中包含一个值,我需要将该值作为请求参数传递给Controller类。所以表单看起来像这样:

代码语言:javascript
运行
复制
<form action="getNode" method="get">
  <input type="hidden" id="nodeId" value="${nodeid}">
  <table>
  <!-- Displaying node related data -->
  </table>
</form>

控制器类的请求映射如下:

代码语言:javascript
运行
复制
@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中显示通过表单提交的值。所以要找其他的选择。

EN

回答 1

Stack Overflow用户

发布于 2017-11-21 18:40:18

对我来说,这是一个愚蠢的错误。我没有给输入的隐藏类型指定一个名称,而是给它一个id。因此,控制器不能选择参数。一旦我把id改成了name,它就起作用了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47394885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档