Аннотированные контроллеры в Spring, передача параметра в jsp - PullRequest
1 голос
/ 25 октября 2010

Я пытаюсь завершить этот урок с аннотированными контроллерами. Я застрял на шаге 2. Вот что они имеют для простых контроллеров:

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String now = (new Date()).toString();
    logger.info("Returning hello view with " + now);

    return new ModelAndView("WEB-INF/jsp/hello.jsp", "now", now);
}

Я пытался заменить его на

    @RequestMapping(method = RequestMethod.GET)
public String showUserForm(ModelMap model)
{
    String now = (new Date()).toString();
    logger.info("Returning hello view with " + now);
    model.addAttribute("now", now);
    return "WEB-INF/jsp/hello.jsp";
}

Но этот параметр "сейчас" не читается в hello.jsp (он может быть доступен по первой ссылке, я не могу вставить html здесь).

Как я могу передать этот параметр в hello.jsp?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 25 октября 2010

Как правило, ваши представления разрешаются с помощью средства распознавания представлений, и его конфигурация по умолчанию включает WEB-INF/jsp в качестве префикса и .jsp в качестве суффикса.

Таким образом, имя представления (строка, которую вы должны вернуть) просто "hello".

Если это не так, поделитесь, пожалуйста, dispatcher-servlet.xml и самим jsp.

0 голосов
/ 25 октября 2010

Возможно, проблема в том, что вы пытаетесь использовать скриптлет для вывода данных в JSP.Например:

<p><%= now %></p>

Это не будет работать, поскольку переменная находится не в области страницы, а в области запроса.Вы должны использовать EL для вывода значения, например:

<p>${now}</p>

Или, если вы хотите использовать скриптлеты, сделайте что-то вроде этого:

<p><%= pageContext.findAttribute("now") %></p>

Если вы можете опубликовать свой JSPкод это было бы весьма полезно.

0 голосов
/ 25 октября 2010

Ваш метод showUserForm() не возвращает объект ModelAndView. Вот как представление получает данные от вашего контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...