2012-01-06 56 views
0

请求被触发时,我无法使用我的控制器。我看到该网站,但我看不到消息属性“Hello World!”。整个事情是在一个osgi环境(处女座)。Spring-MVC:请求时未调用控制器方法

@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

你可以把整个代码?这将有助于查看配置中缺少的内容?当然你不需要在配置文件中定义“”。如果我有我的代码,任何人都可以在本地运行它并提出修复建议。祝你好运。 – skusunam 2012-01-06 16:12:39

+0

是的完整的spring上下文文件会有帮助(web.xml看起来很好,因为''工作)。 – 2012-01-06 18:32:11

回答

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应该被用来刚刚向前创建控制器请求视图没有任何逻辑(其中包括添加模型属性)。

+0

现在该页面不可用:HTTP状态404 – myborobudur 2012-01-06 12:35:07

+0

'/ metamodel'可能会添加到逻辑视图名称,所以返回''list“' – 2012-01-06 12:44:39

+0

我尝试了返回值”list“和metamodel/list”,但仍然没有还添加了一条日志记录,它永远不会记录在日志中 – myborobudur 2012-01-06 18:17:51

相关问题