4

我是 Spring MVC Restful 的新手。假设我有 index.jsp,它将用户转发到一个表单页面,用户可以在其中提交一个词来搜索。我用 POST 处理方法捕捉到这个词,然后做一些计算并希望将结果重定向到另一个页面(/WEB-INF/jsp),例如,我们说基于结果构建一个图形。问题是如何收集结果并同时重定向 URL。控制器如下:

@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”似乎不接受“结果”。我还在 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";
}
4

1 回答 1

3

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”

于 2012-09-08T14:46:53.203 回答