Spring-MVC: метод контроллера не вызывается по запросу - PullRequest
0 голосов
/ 06 января 2012

Я не могу подключить свой контроллер, когда запрос запущен. Я вижу сайт, но не вижу атрибут сообщения «Hello World!». Все это в окружающей среде (Деве).

@Controller
@RequestMapping("/metamodel")
public class FirstController {

    private static final Logger LOG = LoggerFactory.getLogger(FirstController.class);

    public FirstController() {
        LOG.info("------------ FirstController ------");
    }

    @RequestMapping(method = RequestMethod.GET)
    public void helloWorld(Model model) {
        model.addAttribute("message", "Hello World!");
    }
}

Я вижу журнал, так что контроллер там.

views.xml

<tiles-definitions>
    <definition extends="default" name="metamodel/list">
        <put-attribute name="body" value="/WEB-INF/views/metamodel/list.jspx" />
    </definition>
</tiles-definitions>

webmvc-config.xml

    <mvc:view-controller path="/metamodel" view-name="metamodel/list" />

list.jspx

<div xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:sec="http://www.springframework.org/security/tags"     xmlns:c="http://java.sun.com/jsp/jstl/core">

    <jsp:directive.page contentType="text/html;charset=UTF-8" />
    <jsp:output omit-xml-declaration="yes" />

    <h3><c:out value="${message}" /></h3>

</div>

Есть идеи?

1 Ответ

1 голос
/ 06 января 2012

Попробуйте удалить это:

<mvc:view-controller path="/metamodel" view-name="metamodel/list" />

И измените свой метод контроллера так, чтобы он возвращал имя представления следующим образом:

@RequestMapping(method = RequestMethod.GET)
public String helloWorld(Model model) {
    model.addAttribute("message", "Hello World!");
    return "list";
}

См. 16.14.4 Настройка контроллеров представления - mvc:view-controller должен использоваться для создания контроллеров bridge , которые просто перенаправляют запросы в представления без какой-либо логики (включая добавление атрибутов модели).

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