日期:2014-05-17  浏览次数:20874 次

springmvc controller跳转问题
我打算从一个controller跳转到另一个controller。
---------------------
我写了如下配置:
spring-mvc.xml
......
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp">
</bean>
......

现在我把程序展现出来:
@RequestMapping("administratorOperate")
public Object operateForward(String functionName) throws UnsupportedEncodingException{
/**判断合法性*/
String legalFile = legalCheck(functionName);//判断functionName是否存在,不存在为null
if( null == legalFile ){
return noFunctoinCanBeDealtWith();//如果functionName不存在,调用这个函数
}
else{
return new ModelAndView(legalFile);//functionName存在则跳转对应的controller
}
}


问题:
后台访问到这个RequestMapping(debug能跳进来),但是,return new ModelAndView(legalFile);却没有跳到相应的controller 。

自己的分析:
我仔细地分析了,可能是受到了前面spring-mvc.xml的影响,把return new ModelAndView(legalFile);当成了legalFile.jsp,然后跳转了,所以报了404错误!
-----------
重复问题:
后台访问到这个RequestMapping(debug能跳进来),但是,return new ModelAndView(legalFile);却没有跳到相应的controller 。(上面有我自己的分析)
--------------
不懂,请指教
------解决方案--------------------
return new ModelAndView("redirect:"+legalFile);
------解决方案--------------------
legalFile一定要是controller的完整映射路径
------解决方案--------------------
引用:
Quote: 引用:

legalFile一定要是controller的完整映射路径


我的代码里面,假设
@Controller
public class CreateRole{
   @RequestMapping("create")
   public ModelAndView createRole(){
         ......
   }
}
那么,我的operateForward(String?functionName)中的legalFile就是a,
即:return new ModelAndView("redirect:"+"a");
----------------------------------
这,是否是您说的完整映射???

 @RequestMapping("create")中的的create就是完整的映射了
------解决方案--------------------
你这样跳转,肯定是跳到一个页面里了。应该
new ModelAndView(new RedirectView("当前controller名?需要跳转的方法名"))