【发布时间】:2014-05-26 13:42:58
【问题描述】:
我正在尝试为我的项目设置一个通用类。到目前为止,我得到了这段代码:
此刻,我被这个方法卡住了:
@RequestMapping(value="cadastra", method=RequestMethod.POST)
@ResponseBody
public String cadastra(@ModelAttribute("") E object, BindingResult result) {
if(service.cadastra(object))
return "yes";
else
return "not";
}
注解ModelAtribute的参数应该是我项目中的一个实体类的名称,我已经存储在类成员entity_class中,但是因为注解只接受常量值,所以不能使用。
此外,注释 PreAutorize 也有同样的问题。我会这样使用这个注解:
@PreAuthorize("hasPermission(#user, '<<permission_name>>')")
@RequestMapping(value="cadastra")
public ModelAndView cadastra() {
ModelAndView mav = new ModelAndView();
mav.setViewName("privado/"+this.entity_name+"/cadastra");
return mav;
}
在我的通用服务方法中也是如此。权限名称遵循以下规则:
<<action_name>>_<<entity_name>>
对于每个实体类,我将拥有三个权限:cadastra (new_item)、altera (change_item) 和 remove (remove_item)。
谁能指出如何解决这个问题?
【问题讨论】:
标签: java spring generics annotations