Spring MVCアプリケーションに動的に変更可能なメニュー(注釈付きのメソッドまたはコントローラーが追加されるたびに更新)を実装したいと思います。
私が欲しいのは、Beanとそのメソッド@RequestMenuMapping
に行く新しいアノテーション()を導入することです@Controller
(ちょうど@RequestMapping
作品のように)。
これが私が欲しいものです、User
クラス、次のようなメニューを作成します
Users
Index | List | Signup | Login
次のコードで:
@Controller
@RequestMapping("user")
@RequestMenuMapping("Users")
public class User {
@RequestMapping("")
@RequestMenuMapping("Index")
public String index(/* no model here - just show almost static page (yet with JSP checks for authority)*/) {
return "user/index.tile";
}
@RequestMapping("list")
@RequestMenuMapping("List")
public String list(Model model) {
model.addAttribute("userList",/* get userlist from DAO/Service */);
return "user/list.tile";
}
@RequestMapping("signup")
@RequestMenuMapping("Signup")
public String signup(Model model) {
model.addAttribute("user",/* create new UserModel instance to be populated by user via html form */);
return "user/signup.tile";
}
@RequestMapping("login")
@RequestMenuMapping("Login")
public String login(Model model) {
model.addAttribute("userCreds",/* create new UserCreds instance to be populated via html form with login and pssword*/);
return "user/login.tile";
}
}
@RequestMenuMapping
Spring AOPは、アノテーションを使用してメソッドをポイントカットし、 @AfterReturning
Webサイトメニューを表すものをモデルに追加するのに役立つと思います。
しかし、これには2つの疑問があります。
- (のように)アドバイスされたメソッドにインスタンスがない場合、アドバイスメソッドで
Model
インスタンスを取得するにはどうすればよいですか?@AfterReturning
.index()
- 完全なメニューインデックスを作成するために、すべてのメソッド(Javaリフレクションのように
Method
)とクラス(JavaリフレクションのようにClass
)に注釈を付けるにはどうすればよいですか?@RequestMenuMapping