0

Spring の RequestParam のparams機能を Jersey に変換する方法に関する問題に遭遇したとき、すべての Spring Services を Jersey に変換している最中です。

@RequestMapping(value = "/earnings", params = "type=csv" )

春:

@RequestMapping(value = "/earnings", params = "type=csv")
public void earningsCSV() {}

@RequestMapping(value = "/earnings", params = "type=excel")
public void earningsExcel() {}

@RequestMapping("/earnings")
public void earningsSimple() {}

ジャージー:

@Path("/earnings") 
public void earningsCSV() {}

@Path("/earnings")
public void earningsExcel() {}

@RequestMapping("/earnings")
public void earningsSimple() {}

Jerseyでタイプ「csv/excel」を指定する方法は? Jersey は、Param に基づくフィルタリング リクエストをサポートしていますか?

そうでない場合、これを達成する方法はありますか? それらを処理してリクエストをリダイレクトするフィルターを考えていましたが、この方法で対処する必要があるサービスが70以上あります。そのため、最終的にはそれらすべてのフィルターを作成する必要があります。また、きれいなアプローチのようには聞こえません。

任意の提案をいただければ幸いです。前もって感謝します。

4

1 に答える 1

0

ジャージーには、これを定義する構成がありませんでした。これは、春に行われた方法です。

呼び出しを受け入れ、パラメーターに基づいてそれぞれのサービスに呼び出しをリダイレクトする親サービスを作成することで、これを解決しました。

@Path("/earnings")
public void earningsParent(@QueryParam("type") final String type) {
    if("csv".equals(type)) 
         return earningsCSV();
    else if("excel".equals(type)) 
         return earningsExcel();
    else 
         return earningsSimple();
}

public void earningsCSV() {}

public void earningsExcel() {}

public void earningsSimple() {}

このアプローチは、フィルターを拡張する必要がある場合に、開発者が将来フィルターを変更する必要がないため、フィルターよりも優れていると感じました。

于 2016-03-01T11:08:56.603 に答える