Spring mvc Spring3.0:如何重定向到同一页面
在SpringMVC中,我有一个搜索表单。若用户提交搜索表单,结果应显示在同一页面中。 它正在重定向到同一个页面,但我并没有从控制器获取JSP中的属性 qSearch.jspSpring mvc Spring3.0:如何重定向到同一页面,spring-mvc,Spring Mvc,在SpringMVC中,我有一个搜索表单。若用户提交搜索表单,结果应显示在同一页面中。 它正在重定向到同一个页面,但我并没有从控制器获取JSP中的属性 qSearch.jsp <form:form name="quickSearchForm" id="searchFormId" method="POST" action="./searchQuick.html" modelAttribute="searchForm" onsubmit="return validateForm()">
<form:form name="quickSearchForm" id="searchFormId" method="POST" action="./searchQuick.html" modelAttribute="searchForm" onsubmit="return validateForm()">
<table>
<tr>
<th>Change/Defect ID</th><td><form:input type="text" name="identifier" path="identifier"/></td>
</tr>
</table>
<div class="icons">
<span><button style="left:0px" type="reset" name="clear" style="border-radius: 25px;">CLEAR</button></span>
<span><button style="right:0px" type="submit" name="submit" style="border-radius: 25px;" >SEARCH</button></span>
</div>
</form:form>
<hr>
<div>
<c:if test="${empty SEARCH_RESULTS_KEY}">
<table style="border-collapse: collapse;" border="1" class="showResults">
<tr>
<td colspan="7">No Results found</td>
</tr>
</table>
</c:if>
<c:if test="${! empty SEARCH_RESULTS_KEY}">
<table style="border-collapse: collapse;" border="1" class="showResults">
<tr>
<td colspan="7">Result found</td>
</tr>
</table>
</c:if>
更改/缺陷ID
清楚的
搜寻
未找到任何结果
结果发现
控制器
@RequestMapping(value="/qSearch", method = RequestMethod.GET)
public String getQuickSearchmodel(Model model) {
System.out.println("Welcome to search tool\n");
ArchivalIssue archivalIssue=new ArchivalIssue();
model.addAttribute("searchForm", archivalIssue);
return "quickSearchPage";
}
@RequestMapping(value = "/searchQuick", method = RequestMethod.POST)
public ModelAndView getAllArchivalIssues(HttpServletRequest request){
String identifier = request.getParameter("identifier");
List<ArchivalIssue> archivalIssue = archivalIssueService.getAllArchivalIssue(identifier);
ModelAndView mav = new ModelAndView("redirect:/qSearch"); //Add model to display results
mav.addObject("SEARCH_RESULTS_KEY", archivalIssue); //Add result object to model
return mav;
}
@RequestMapping(value=“/qSearch”,method=RequestMethod.GET)
公共字符串getQuickSearchmodel(模型模型){
System.out.println(“欢迎使用搜索工具”);
ArchivalIssue ArchivalIssue=新的ArchivalIssue();
model.addAttribute(“searchForm”,archivalIssue);
返回“quickSearchPage”;
}
@RequestMapping(value=“/searchQuick”,method=RequestMethod.POST)
公共模型和查看getAllArchivalIssues(HttpServletRequest){
字符串标识符=request.getParameter(“标识符”);
List archivalIssue=archivalIssueService.getAllArchivalIssue(标识符);
ModelAndView mav=newmodelandview(“重定向:/qSearch”);//添加模型以显示结果
addObject(“SEARCH_RESULTS_KEY”,archivalIssue);//将结果对象添加到模型中
返回mav;
}
请有人帮助我,如何在JSP中得到结果。我总是找不到结果。当返回值包含redirect:prefix时,视图名称的其余部分将被视为重定向URL。浏览器将向该重定向URL发送一个新请求。因此,将执行映射到此URL的处理程序方法 只需返回与带有模型属性的响应相同的页面 您是否使用JSTL?是否需要进行任何更改
${empty param.SEARCH_RESULTS_KEY}
我认为在这种情况下你不应该改变方向。因为重定向将创建到服务器的新GET请求。
quickSearchPage
和getAllArchivalIssues
应返回相同的视图
@RequestMapping(value = "/searchQuick", method = RequestMethod.POST)
public ModelAndView getAllArchivalIssues(HttpServletRequest request){
String identifier = request.getParameter("identifier");
List<ArchivalIssue> archivalIssue = archivalIssueService.getAllArchivalIssue(identifier);
//return quickSearchPage, so that the client can render the list archivalIssue
ModelAndView mav = new ModelAndView("quickSearchPage");
mav.addObject("SEARCH_RESULTS_KEY", archivalIssue); //Add result object to model
return mav;
}
@RequestMapping(value=“/searchQuick”,method=RequestMethod.POST)
公共模型和查看getAllArchivalIssues(HttpServletRequest){
字符串标识符=request.getParameter(“标识符”);
List archivalIssue=archivalIssueService.getAllArchivalIssue(标识符);
//返回quickSearchPage,以便客户端可以呈现列表存档
ModelAndView mav=新的ModelAndView(“快速搜索页面”);
addObject(“SEARCH_RESULTS_KEY”,archivalIssue);//将结果对象添加到模型中
返回mav;
}
谢谢您的回复。我试过这个。我可以重定向到同一个页面,但在JSP中并没有得到属性“archivalIssue”的值。但无法从控制器获取任何属性。我不确定上次编辑的内容,因为您如何使用JSTL进行渲染?