从JSP文件向RequestParam发送值时出错

时间:2016-03-31 06:57:33

标签: java jsp spring-mvc

我有以下代码:

<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代码一样,我不会以String格式获取movieName,而是以$ {movieName}的形式出现,不能接受RequestParam中存在一个String,因此会抛出错误。

我想知道如何修复它以在URL中获取Stringformat中的moviename,以便我可以填充结果

由于

1 个答案:

答案 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字符串中,用单引号转义它后(看我上面是怎么做的。)

如果您仍然卡住,可能会尝试使用该参数显示控制器?