2012-01-06 50 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

相關問題