приложение spring не может найти отображенный вид

#java #spring #spring-mvc #generics

#java #весна #spring-mvc #общие

Вопрос:

В моем приложении spring у меня есть один общий класс контроллера, который служит базовым классом для нескольких других контроллеров в моем приложении. Эти производные контроллеры имеют такую структуру:

 @Controller
@RequestMapping(value="usuario")
public class UsuarioController extends controller<Usuario> {

    public UsuarioController() {
        super(Usuario.class);
    }

}
  

У меня будет один из них для каждого класса сущностей из моего приложения. В общем контроллере у меня есть два метода для каждого действия (т. е.: вставка, обновление, удаление, выбор). эти два метода (и универсальный контроллер) имеют такую форму:

 public class controller<E> {

    @Autowired
    private service<E> serv;

    private final Class<E> entityClass;

    @RequestMapping(value="cadastra")
    @PreAuthorize("hasPermission(#user, 'cadastra_' #this.this.name)")
    public ModelAndView cadastra() throws InstantiationException, IllegalAccessException {
        return new ModelAndView("privado/" this.entityClass.getName() "/cadastra", "command", this.entityClass.newInstance());
    }

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

Проблема в том, что когда я запускаю приложение и пытаюсь получить доступ к представлению, отображенному этим методом, я получаю ошибку 404.

Кто-нибудь может сказать, что я здесь делаю не так?

Комментарии:

1. Пожалуйста, покажите пример конкретного представления, которое у вас есть. Также опубликуйте свою конфигурацию Spring MVC

2. @geoи моя весенняя конфигурация: github.com/klebermo/blog.cms/tree/master/src/main/java/com /.

3. Почему бы вам не обновить свой вопрос, чтобы каждый мог легко увидеть конфигурацию?

4. @geoand я сохраняю свои взгляды здесь: github.com/klebermo/blog.cms/tree/master/src/main/webapp /… (представление, к которому я пытаюсь получить доступ и которое отображается контроллером выше, — privado/Usuario/).

5. извините, я думал, что это более простой способ, поскольку моя конфигурация размещена в нескольких классах.

Ответ №1:

Проблема в том, что Spring не может найти правильный JSP для пересылки обработки. После просмотра вашего кода кажется, что вам нужно изменить this.entityClass.getName() с this.getName()