1

問題の定義 myapp/doStuff を指すリンクがあります

現在、このリクエストを処理するためのSpringコントローラーがあります..doStuffOldと言ってください

ただし、新しいプロジェクトでは、次のことを行う必要があります 1.日付依存フラグを追加します-dateFlag(日付<10-Sepの場合はfalse、そうでない場合はtrue) 2.新しいコントローラーdoStuffNewを作成します 3.同じURL(myapp/doStuff)の場合dateFlag が false の場合は 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ハンドラでフラグを確認し、リクエストを new 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 に答える