java - 从 JSP 文件向 RequestParam 发送值时出现错误

标签 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.

Controller 方法:

我的 Controller 类到调用所在的位置:

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

当前 URL 为:/myapp/movie/SubmitMovie/

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

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

我想知道如何修复它以获取 URL 中字符串格式的电影名称,以便我可以填充结果

谢谢

最佳答案

那里没有很多代码,所以我不知道你到底要做什么,但你总是可以向请求参数添加一个 required=false 条件,就像这样:

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

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

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

如果您仍然遇到困难,也许可以尝试使用该参数显示页面的 Controller ?

关于java - 从 JSP 文件向 RequestParam 发送值时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36326233/

相关文章:

spring-mvc - Spring MVC 与 Spring Security 的集成测试

java - 如何将所有组件刷新为默认值或初始值?

java - 用 Ant 脚本替换正则表达式

java - Android Switch 语句调试

java - 从 spring Controller 转发到 jsp 文件

JSP 从另一个 jsp 文件调用一个函数

java - 如何在jsf中获取当前 View id和上一个 View id

jsp - 使用paypal的支付网关

Java AJAX 变量传递

java - 阻塞非 CRUD REST 动词