我有以下代码:
<c:forEach var="listValue" items="${upcomingMovieslists}">
div style="border:thin inset #6E6E6E; text-align: justify;> <p margin-left: 1em;"> <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代码一样,我不会以String格式获取movieName,而是以$ {movieName}的形式出现,不能接受RequestParam中存在一个String,因此会抛出错误。
我想知道如何修复它以在URL中获取Stringformat中的moviename,以便我可以填充结果
由于
答案 0 :(得分:1)
那里没有很多代码,所以我不确切知道你的目的是什么,但你总是可以在请求参数中添加required=false
条件,像这样:
@RequestParam(value = "movieName", required = false) String movieName
至少应该清楚这个错误。但是,如果模型中的逻辑需要movieName,那么您将需要围绕它重构 - 即,您的链接需要看起来像href="/myapp/movie/SubmitMovie?movieName='${listValue.key}'"
。
(注意:我在您的代码中推断${listValue.key}
是电影的名称。无论您希望控制器以@RequestParam String movieName
接收哪个变量,请将其放在{{1}之后在href字符串中,用单引号转义它后(看我上面是怎么做的。)
如果您仍然卡住,可能会尝试使用该参数显示控制器?