Struts 2 アプリケーションで以下のサンプルを検討してください。これはグリッドを表示するページで、ユーザーは同じグリッドを PDF にエクスポートできます。
2 つのアクションを持つクラスを開発します。1 つのアクションはグリッドを JSON として返し、もう 1 つのアクションは同じグリッドを PDF にエクスポートします。
コードの構造は次のとおりです。
2 つの異なるアクション マップが定義されており/ShowGrid
、/ExportGrid
@Action (name="ShowGrid") // Result will be set to JSON
@validation ( @Required (..... // Validation Rules for fromDate toDate etc
public String showGrid(){
gird = serviceFacade.getGrid(fromDate,toDate);
return SUCCESS;
}
@Action (name="ExportGrid" ) //Result will be set as stream
@validation ( @Required ..... // Validation Rules for fromDate toDate etc
public String exportGrid(){
grid = serviceFacade.getGrid(fromDate,toDate);
inputStream = convertGridToStream(grid); // By using jasper report or other tools
return SUCCESS;
}
ご覧のとおり、上記のメソッドには多くの共通構造があります。
- 検証が重複しています(私の使用例では、検証ルールはLOTです)
- サービスメソッドの呼び出しが重複しています
これを回避する方法はありますか?!