2011-03-10 44 views
30

在註釋驅動的Spring MVC中,有沒有辦法生成一個URL模式,動詞及其映射表?例如:在Spring MVC中,有沒有一種方法可以生成可識別的控制器和視圖列表?

/foo/{fooId}  | GET | FooController.get()  | jsp/foo/home.jsp  | 
/foo/{fooId}/bars/ | GET | FooController.getBars() | jsp/foo/bar/index.jsp | 
+1

+1個好問題! – Nilesh 2011-03-10 06:24:27

+0

不是答案,但可能會有幫助...打開org.springframework(log4J config)的DEBUG級別日誌記錄。當容器啓動時,你會得到一個URI模式列表及其匹配的控制器和方法(不要以爲你得到HTTP動詞或JSP路徑) – nickdos 2011-03-10 08:00:45

回答

10

這幫了我。裏面的log4j.xml把下面:

<!-- Appenders --> 
<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p: %c - %m%n" /> 
    </layout> 
</appender> 


<!-- 3rdparty Loggers --> 
<logger name="org.springframework.core"> 
    <level value="info" /> 
</logger> 

<logger name="org.springframework.beans"> 
    <level value="info" /> 
</logger> 

<logger name="org.springframework.context"> 
    <level value="info" /> 
</logger> 

<logger name="org.springframework.http"> 
    <level value="debug" /> 
</logger> 
    <!-- below alternate between debug and info --> 
<logger name="org.springframework.web"> 
    <level value="debug" /> 
</logger> 
+1

爲我工作,但請注意,這不是你需要在你的XML文件中。還需要這個... <?xml version =「1.0」encoding =「UTF-8」?> <!DOCTYPE log4j:configuration PUBLIC「 - // log4j/log4j Configuration // EN」「log4j.dtd」> 2014-10-20 08:06:36

+0

不適合我,spring 4.0.0 – NickJ 2016-03-24 15:11:05

5

這是同樣的方法,只是更具體提及,所以你只需要登錄的網址映射,而不是一切從Spring框架的約翰FUHR。我也使用log4j.properties,而不是.xml,但如果你喜歡,你可以將它轉換。我假設你也有一個名爲mainAppender的appender。

我使用Spring 3.2.2.RELEASE,但它也可以與其他版本一起使用。

此記錄是負責什麼,你有@RequestMapping標記:

log4j.logger.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=INFO, mainAppender 

這是負責<mvc:resources />定義記錄器:

log4j.logger.org.springframework.web.servlet.handler.SimpleUrlHandlerMapping=INFO, mainAppender 

您可能還需要增加這兩條線停止如果您遇到這種情況,請重複輸出(打印兩行相同的行)。

log4j.additivity.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=false 
    log4j.additivity.org.springframework.web.servlet.handler.SimpleUrlHandlerMapping=false 

這是輸出的一個例子,我得到:

14:29:43 INFO RequestMappingHandlerMapping.registerHandlerMethod():185 - Mapped "{[/splash],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String au.org.example.HomeController.splash(org.springframework.ui.Model) 
14:29:43 INFO RequestMappingHandlerMapping.registerHandlerMethod():185 - Mapped "{[/home],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String au.org.example.HomeController.home(boolean,int,org.springframework.ui.Model) 
14:29:44 INFO SimpleUrlHandlerMapping.registerHandler():302 - Root mapping to handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController] 
14:29:44 INFO SimpleUrlHandlerMapping.registerHandler():315 - Mapped URL path [/js/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0' 
14:29:44 INFO SimpleUrlHandlerMapping.registerHandler():315 - Mapped URL path [/images/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#1' 
14:29:44 INFO SimpleUrlHandlerMapping.registerHandler():315 - Mapped URL path [/css/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#2' 

這不是因爲漂亮,你以後,但它確實給你的信息的前三列(從示例表)。不幸的是你沒有看到視圖名稱。

相關問題