Spring-基于标志选择控制器
问题定义 我有一个链接指向myapp/doStuff 目前我有一个Spring控制器来处理这个请求。。说多斯塔福德 但是现在有了一个新项目,我需要做以下工作 1.添加日期相关标志-dateFlag(如果日期<9月10日,则为false,否则为true) 2.创建一个新的控制器doStuffNew 3.对于相同的url(myapp/doStuff),如果dateFlag为false,我需要使用doStuffOld,否则使用doStuffNew 在春天实现这一目标的最佳方式是什么。 注意:URL动态来自应用程序外部,无法更改。您可以这样做 在Spring-基于标志选择控制器,spring,controllers,Spring,Controllers,问题定义 我有一个链接指向myapp/doStuff 目前我有一个Spring控制器来处理这个请求。。说多斯塔福德 但是现在有了一个新项目,我需要做以下工作 1.添加日期相关标志-dateFlag(如果日期
myapp/doStuff
处理程序中,您可以检查标志并将请求转发到新url(doStuffOld
),您可以使用该选项
如果使用了另一个解决方案if,您可以不希望调用旧的处理程序doOldStuff
@RequestMapping(value="doStuff", params="dateFlag=true")
public ModelAndView doStuff(HttpServletRequest request, HttpServletResponse response){
....
}
@RequestMapping(value="doStuff", params="dateFlag=false")
public ModelAndView doOldStuff(HttpServletRequest request, HttpServletResponse response){
....
}
你能行
在myapp/doStuff
处理程序中,您可以检查标志并将请求转发到新url(doStuffOld
),您可以使用该选项
如果使用了另一个解决方案if,您可以不希望调用旧的处理程序doOldStuff
@RequestMapping(value="doStuff", params="dateFlag=true")
public ModelAndView doStuff(HttpServletRequest request, HttpServletResponse response){
....
}
@RequestMapping(value="doStuff", params="dateFlag=false")
public ModelAndView doOldStuff(HttpServletRequest request, HttpServletResponse response){
....
}
我同意我可以这样做,但是客户端有一个严格的要求,只有正确的控制器应该被调用。所以基本上没有从一个控制器重定向到另一个控制器。我正在努力弄清楚这个计划的可行性this@user1812652是否要求必须调用旧的处理程序
doOldStuff
,并且使用的是spring版本?您是否使用RequestMapping
注释来映射请求句柄?根据标志,需要为同一url调用两个处理程序中的一个。我在描述中使用新旧术语只是为了区分。这两个控制器具有不同的逻辑。此外,还使用了Spring 3+,因此我可以使用请求映射注释Thank。。这更有意义。现在,由于url是动态呈现的(应用程序不创建此url),并且dateFlag确定位于Util.java文件中。您建议我如何将其集成到params逻辑中?我同意我可以这样做,但是客户端有一个严格的要求,即只应调用正确的控制器。所以基本上没有从一个控制器重定向到另一个控制器。我正在努力弄清楚这个计划的可行性this@user1812652是否要求必须调用旧的处理程序doOldStuff
,并且使用的是spring版本?您是否使用RequestMapping
注释来映射请求句柄?根据标志,需要为同一url调用两个处理程序中的一个。我在描述中使用新旧术语只是为了区分。这两个控制器具有不同的逻辑。此外,还使用了Spring 3+,因此我可以使用请求映射注释Thank。。这更有意义。现在,由于url是动态呈现的(应用程序不创建此url),并且dateFlag确定位于Util.java文件中。您建议我如何将其集成到params逻辑中?