1

问题定义 我有一个链接指向说 myapp/doStuff

目前我有一个 Spring 控制器来处理这个请求。说 doStuffOld

但是现在有了一个新项目,我需要执行以下操作 1. 添加一个与日期相关的标志 - dateFlag(如果 date< 10-Sep 否则为 true) 2. 创建一个新控制器 doStuffNew 3. 对于相同的 url (myapp/doStuff)如果 dateFlag 为假,我需要使用 doStuffOld 否则使用 doStuffNew

在春天实现这一目标的最佳方法是什么。注意:URL 来自应用程序外部,并且无法更改。

4

1 回答 1

1

你可以做请求转发

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处理程序中,您可以检查标志并将请求转发到新的 url( 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){
    ....
}
于 2013-04-10T03:19:36.787 回答