问题定义 我有一个链接指向myapp / doStuff
目前我有一个Spring控制器来处理这个请求..比如doStuffOld
但是现在有了一个新项目,我需要做以下几点 1.添加日期相关标志 - dateFlag(如果日期< 10-Sep,则为false) 2.创建一个新的控制器doStuffNew 3.对于相同的url(myapp / doStuff),如果dateFlag为false,我需要使用doStuffOld,否则使用doStuffNew
春天实现这一目标的最佳途径是什么? 注意:URL是从应用程序外部动态生成的,不能更改。
答案 0 :(得分:1)
您可以执行request forwarding
boolean dateFlag = Boolean.getBoolean(request.getParameter("dateFlag")); //Get the dateFlag value in the `doStuff` handler method
if(dateFlag){
request.getRequestDispatcher("doStuffOld").forward(request, response);
return null;
}
在myapp/doStuff
处理程序中,您可以检查标记并将请求转发到新网址(doStuffOld
),您可以使用params选项。
使用RequestMapping并且您不希望调用旧处理程序的另一种解决方案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){
....
}