我是 Spring MVC Restful 的新手。
假设我有 index.jsp,它将用户转发到一个表单页面,用户可以在其中提交一个术语进行搜索。我用 POST 处理程序方法捕获该术语,然后进行一些计算并希望将结果重定向到另一个页面(/WEB-INF/jsp),例如,我们说根据结果构建一个图。问题是如何同时收集结果和重定向 URL。
Controller 如下:
@RequestMapping(value="/termForm", method = RequestMethod.GET)
public ModelAndView setupForm() {
Term termClass = new Term();
return new ModelAndView("term", "command", termClass);
}
@RequestMapping(value="/getTerm", method=RequestMethod.POST)
public String getTerms(@ModelAttribute("term") Term term, BindingResult result)
{
String label = term.getTerm();
//doing some calculation to term here
result = ....
return "redirect:"+ "graphPage.jsp";
}
通过搜索,我发现Spring View Resolver只能处理根目录下重定向的jsp(和index.jsp一样)。在这种情况下,“graphPage”似乎不接受“result”。我还在 XXX-servlet.xml 中包含 UrlBasedViewResolver 如下:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
抱歉问了这么长的问题,请给出任何提示来做到这一点。非常感谢。
我的问题有两个部分。一种是将 POST 方法重定向到另一个页面,graphPage.jsp。由于我们转到图形,因此我们还需要来自 POST 方法的数据来创建图形。这是另一个问题。希望很清楚。我已经通过添加处理程序方法解决了第一个问题,见下文。但是如何将结果打包并传递给Graph.jsp呢?谢谢
@RequestMapping(value="/graphPage", method=RequestMethod.GET)
public String showGraph()
{
return "graphPage";
}
最佳答案
如果您使用 RedirectView
,您将更好地控制重定向。而不是字符串。请参阅此示例。
@Contoller
@RequestMapping("/your")
public class YourController
@RequestMapping(value="/getTerm", method=RequestMethod.POST)
public ModelAndView getTerms(@ModelAttribute("term") Term term, BindingResult result) {
...
return new ModelAndView(new RedirectView("/your/other", true));
}
@RequestMapping(value="/other", method=RequestMethod.POST)
public String otherMethod() {...}
}
但也许你问了一些不同的问题,那么请重写你的问题。很难理解你的问题是什么。/
顺便提一句。测试您是否可以直接请求您的“graphPage”
关于forms - Spring MVC Restful 应用程序 : Redirect a form result to another page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12330679/