我希望为我的 Spring MVC 应用程序实现动态可变菜单(每当添加注释方法或控制器时更新)。
我想要的是引入新的注释(@RequestMenuMapping
),它将用于@Controller
bean 及其方法(就像@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";
}
}
我认为 Spring AOP 可以帮助我通过@RequestMenuMapping
注释来切入方法,并通过@AfterReturning
添加一些代表网站菜单的东西来建模。
但这提出了两个问题:
- 如果建议方法中缺少实例(如中) ,我如何
Model
在建议方法中获取实例?@AfterReturning
.index()
- 我如何获取所有方法(如在 java 反射中
Method
)和类(如在 java 反射中Class
)@RequestMenuMapping
以构建完整的菜单索引?