【问题标题】:getting an error in sending a value to RequestParam from JSP file从 JSP 文件向 RequestParam 发送值时出错
【发布时间】:2016-03-31 16:02:42
【问题描述】:

我有以下代码:

<c:forEach var="listValue" items="${upcomingMovieslists}">
        div style="border:thin inset #6E6E6E; text-align: justify;> <p margin-left: 1em;">&nbsp;&nbsp;<c:set var="movieName" scope="application" value="${listValue.key}"/><a  href="/myapp/movie/SubmitMovie/" >${listValue.key}</a></p></div>
</c:forEach>

并且movieName 将位于下一个页面的@RequestParam String movieName中。

所以,当我运行这段代码时,我收到一个错误提示:

error:
message Required String parameter 'movieName' is not present

description The request sent by the client was syntactically incorrect.

控制器方法:

我的控制器类到调用的地方:

@RequestMapping(value="/SubmitMovie", method = RequestMethod.GET)
public ModelAndView getSearchedMovie(@RequestParam String movieName, ModelMap model)

当前网址为:/myapp/movie/SubmitMovie/

应该是/myapp/movie/SubmitMovie/?movieName=deadpool 为了工作

我应该有 /?movieName= 在下一页显示结果,但是与上面的 jsp 代码一样,我不会以字符串格式获取电影名称,而是以 ${movieName} 的形式出现,不能接受RequestParam 中存在的字符串,因此会引发错误。

我想知道如何修复它以在 URL 中以 Stringformat 格式获取电影名称,以便填充结果

谢谢

【问题讨论】:

  • 能否添加创建即将上映的Movieslists的电影对象的参数
  • 请不要问多个问题,请编辑您的前一个问题。 stackoverflow.com/questions/36321761/…
  • @DevanshuDwivedi:我已经删除了那个帖子。我发布了这篇新文章,因为我在代码方面取得了一些进展,这是我面临的新问题
  • @DevanshuDwivedi 关于第一个没有创建即将到来的电影列表的参数。这是开始页面,我将在其中获取数据到 Map 并返回 JSP 文件,该文件用于以列表形式显示它们。从那里我试图单击列表中显示的元素,当我单击列表中的元素时,这给了我上述错误

标签: java jsp spring-mvc


【解决方案1】:

那里没有很多代码,所以我不知道你要做什么,但你总是可以在请求参数中添加required=false 条件,如下所示:

@RequestParam(value = "movieName", required = false) String movieName

这至少应该清除该错误。但是,如果您的模型中的逻辑确实需要movieName,那么您将需要围绕它进行重构——即,您的链接需要看起来像href="/myapp/movie/SubmitMovie?movieName='${listValue.key}'"

(注意:我从您的代码中推断出${listValue.key} 是电影的名称。无论您希望控制器以@RequestParam String movieName 形式接收什么变量,都将其放在href 字符串中的?movieName= 之后,之后用单引号转义它(请参阅上面我是如何做到的。)

如果您仍然卡住,也许尝试显示带有该参数的页面的控制器?

【讨论】:

  • 酷!如果可行,请随时接受有帮助的答案:) 如果没有,请告诉我您是否还有其他问题,我很乐意尝试调试
  • 我应该有 /?movieName= 在下一页显示结果,但是与上面的 jsp 代码一样,我不会以字符串格式获取电影名称,而是以 ${movieName} 的形式出现它不能被 String 接受,因此会引发错误。我想知道如何修复它以获取 URL 中的电影名称,以便我可以填充结果。如果我的信息仍然不清楚,请告诉我,以便我可以相应地更正它以使其更加理解
  • 感谢您也提供控制器,但是是的,问题出在您提交的原始块中。进行以下编辑:&lt;a href="/myapp/movie/SubmitMovie?movieName='${listValue.key}'" &gt;${listValue.key}&lt;/a&gt;
  • 您是对的,您不能只将${listValue.key}${movieName} 放入href 查询字符串中,因为它只会将它们设置为文字字符串的一部分。这就是为什么您需要在${...} 周围使用'...' 转义原始字符串。这应该可以解决问题。
  • 我通过您提到的上述更改修复了它。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 2016-02-07
  • 2015-05-25
  • 2012-11-14
  • 2020-03-06
相关资源
最近更新 更多