これが可能かどうかわかりませんが、Spring MVCで奇妙なバインディングを行う必要があります。我々は、いくつかのレポートを実行する前兆となるページを動的に生成する必要があります。異なるレポートには異なる基準があり、利用可能な場合、レポートに表示されるデータが制限されます。Spring MVCバインド
私はこのような何かを行うことができますことを期待していた:
public interface ReportingStrategy extends Serializable {
public String getReportingCriteria(); //Each subclass will generate the SQL needed
}
public class DateLimitingStrategy implements ReportingStrategy {
private Date startDate;
public Date getStartDate() { return startDate; }
public void setStartDate(Date startDate) { this.startDate = startDate; }
private Date endDate;
public Date getEndDate() { return endDate; }
public void setEndDate(Date endDate) { this.endDate = endDate; }
public String getReportingCriteria() {
//Generate SQL for date range (where necessary)
}
}
public class SortingStrategy impelements ReportingStrategy {
public String sortValue;
public String getSortValue() { return this.sortValue; }
public void setSortValue(String sortValue) { this.sortValue = sortValue; }
}
だからそれはかなりシンプルなアイデアのように思えます。
私のコントローラ側では、これらの投稿のリストに投稿することができます。私はこれを必要とするはずのHTMLを生成することができますが、バインディングが正しく機能していません。私のコントローラの基礎は次のとおりです:
PropertyEditorSupportを拡張してInitBinderマジックを実行することによっても可能ですか?
ページが読み込まれた時点でレポート戦略の種類がわかっているのか、ユーザーがレポート戦略を選択していますか? – Affe
レポートAは日付限定戦略を持ち、レポートBは両方を持つ可能性があるので、彼らは知られています。 BackingObjectのコンストラクタは、それらをDB内で検索します(図示せず) – Scott