我的方法做出决定;在一种情况下,它重定向到URL。在另一种情况下,它必须进行ModelAndView JSP刷新。
这种方法的签名应该是什么?
现在,
public String removeForm(final HttpServletRequest request) throws Exception
{
if (condition1) {
return "redirect:/myaction";
}
else {
// Need to do a View, or a ModelAndView?
}
}
相反,我的方法可能是基于ModelAndView的方法,但我需要在一个案例中返回一个Redirect字符串。如何将它们结合起来?
答案 0 :(得分:5)
最简单的方法是使用Object
作为返回类型。
public Object removeForm(final HttpServletRequest request) throws Exception
{
if (condition1) {
return "redirect:/myaction";
} else {
return new ModelAndView("jspName", modelMap);
}
}
但更优雅的是使用ModelAndView
并在重定向情况下使用RedirectView
public ModelAndView removeForm(final HttpServletRequest request) throws Exception
{
if (condition1) {
return new ModelAndView(new RedirectView("/myaction"));
} else {
return new ModelAndView("jspName", modelMap);
)
}
答案 1 :(得分:2)
如果需要始终返回 String ,可以在方法中使用Model类并将视图名称作为String返回,它就像返回ModelAndView一样:
public String removeForm(final HttpServletRequest request, Model model)throws Exception
{
if (condition1) {
return "redirect:/myaction";
}else {
model.addAtribute("objectName",object);
return "viewName";
}
}