在请求被触发时,我无法使用我的控制器。我看到了网站但我看不到消息属性“Hello World!”。整个事情是在osgi环境(处女座)。
@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>
有什么想法吗?
答案 0 :(得分:1)
尝试删除此内容:
<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 Configuring View Controllers - mvc:view-controller
应该用于创建网桥控制器,它只是将请求转发给视图而不需要任何逻辑(包括添加模型属性)。