2012-02-21 6 views

答えて

1

注釈はコンパイル時に定義された定数です(注釈法/メンバーに使用できる種類が限られているのはこのためです)。

動的ではないというわけではありませんが、あなたの一部(または別のライブラリの一部)でいくつかの巧妙な作業が必要になります。

小さなスクリプト言語を作成し、パラメータとして式を使用できます。そうすれば、Stringの値は動的ではないかもしれませんが、Stringに含まれている式ではあなたの言語はできます。

幸運にも、春はすでにあなたのためにあなた自身の小さな言語を書く必要はありません。 Spring Expression Language (SpEL)。 SpELがここであなたを助けるかどうかはわかりませんが、一見価値があります。

3

リフレクションによってモデルオブジェクトを動的にインスタンス化し、手動でバインディングをトリガして目的の結果を得ることができます。

@RequestMapping(method=RequestMethod.POST,value="/add/{modelSelect}") 
public String saveEntity(@PathVariable String modelSelect, WebRequest request){ 
    Object domainObject = //create object with your custom strategy using the modelSelect  
    WebRequestDataBinder binder = new WebRequestDataBinder(domainObject); 
    binder.bind(request); 
    //do something with the domain object 
    return "/somePage"; 
} 

また、これは便利http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/web/bind/support/WebRequestDataBinder.html

+0

完璧な答えかもしれません。 –

関連する問題