Не удается правильно выполнить сопоставление spring-mvc

Я разрабатываю веб-приложение spring-mvc, и у меня возникли некоторые проблемы с отображением: Мой web.xml:

  <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app
 @RequestMapping(method=RequestMethod.GET)
    public String loadIndex(Model model)
    {
        model.addAttribute("firstName", "WWWALTER");
        return "index";
    }
0.xsd" version="3.0"> <display-name>Spring MVC Application</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <welcome-file-list> <welcome-file>pages/index.jsp</welcome-file> </welcome-file-list> </web-app>

Мой контроллер:

 @Controller
    public class MainController {

    @Autowired
    UserService userService;
    @Autowired
    PhotosService photosService;

    @RequestMapping(method=RequestMethod.GET)
    public String loadIndex(Model model)
    {
        model.addAttribute("firstName", "WWWALTER");
        return "index";
    }

    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    public String save( @ModelAttribute("document") PhotosEntity photosEntity,
            @RequestParam("file") MultipartFile file) {
        Blob blob = null;
        try {
            blob = new SerialBlob(file.getBytes());
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
      //  PhotosEntity photosEntity = new PhotosEntity();
        photosEntity.setContent(blob);
        photosEntity.setFilename(file.getOriginalFilename());

        photosService.saveFile(photosEntity);

        return "index";
    }

Также у меня есть имя приложения в tomcat 7 - "c2". Так должен ли я отображать с префиксом "c2/"?

Не могли бы вы помочь мне создать правильное отображение? Я хочу добавить атрибут в первый метод и получить его на странице jsp:

 @RequestMapping(method=RequestMethod.GET)
    public String loadIndex(Model model)
    {
        model.addAttribute("firstName", "WWWALTER");
        return "index";
    }

- но этот метод не вызывается.


person Vadym Roganin    schedule 16.11.2013    source источник
comment
Какое неожиданное поведение вы видите? Нам нужно больше информации о том, что именно пошло не так.   -  person Bart    schedule 17.11.2013


Ответы (2)


Вы можете получить атрибут следующим образом: ${firstName} со своей jsp-страницы.

Также попробуйте изменить @RequestMapping(method=RequestMethod.GET) на @RequestMapping(value = "/", method=RequestMethod.GET)

person Emil C    schedule 16.11.2013

Это звучит так глупо. Но я просто забыл поставить

<mvc:annotation-driven /> 

в файле контекста сервлета. Извиняюсь!

person Vadym Roganin    schedule 17.11.2013