Атрибут для аннотаций @ModelAtribute и @PreAutorize в classах Generic Controller / Service

Я пытаюсь установить общий class для моего проекта. Пока я получаю этот код:

https://github.com/klebermo/blog.cms/blob/master/src/main/java/com/config/generic/controller/GenericController.java

В этот момент я придерживаюсь этого метода:

@RequestMapping(value="cadastra", method=RequestMethod.POST) @ResponseBody public String cadastra(@ModelAttribute("") E object, BindingResult result) { if(service.cadastra(object)) return "yes"; else return "not"; } 

параметр для annotations ModelAtribute должен быть именем classа сущности из моего проекта, который я сохранил в classе member_class, но не могу использовать, потому что аннотация принимает только постоянные значения.

Кроме того, у меня есть та же проблема с аннотацией PreAutorize. Я буду использовать эту аннотацию следующим образом:

 @PreAuthorize("hasPermission(#user, '<>')") @RequestMapping(value="cadastra") public ModelAndView cadastra() { ModelAndView mav = new ModelAndView(); mav.setViewName("privado/"+this.entity_name+"/cadastra"); return mav; } 

и в моих методах от моего общего сервиса тоже. Имя этого разрешения следует этому правилу:

 <>_<> 

и для каждого classа сущности я буду иметь три разрешения: cadastra (new_item), altera (change_item) и remove (remove_item).

Любой может указать направление, как это решить?

Для первого вопроса @ModelAttribute , что я понял, у вас есть несколько форм, вызывающих один и тот же метод @ModelAttribute Mapping, чтобы проверить правильность информации. Я думаю, вы можете использовать параметр формы, чтобы указать, какой class сущности он есть, и использовать оболочку для обертывания всех объектов, которые вызывают этот метод.

создать объект:

 @Entity public class Wrapper{ private Entity1 e1; ..... 

в вашем jsp:

    

в вашем controllerе:

 @RequestParam("classname") String classname;//used to get which entity it's service.cadastra(wrapper.getEntityX()) 

для второго вопроса я мало знаю о @PreAuthorize annotations.