2014-01-06 31 views
1

Spring MVC:我在路徑WEB-INF/jsp中有我的jsp文件。我想要使​​用spring mvc來解析url
_http:// mydomainname:8080 /冰屋/ sports/scoreboard 。 JSP頁面是/WEB-INF/jsp/sports/scoreboard.jspspring mvc - 如何映射多個子文件夾

下面是安裝的細節,我在底部得到錯誤:

WEB.XML: 
<servlet-mapping> 
    <servlet-name>springapp</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

springapp-servlet.xml: 
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> 
    <property name="prefix" value="WEB-INF/jsp/"></property> 
    <property name="suffix" value=".jsp"></property> 
</bean> 

@RequestMapping({"/sports/scoreboard"}) 
public String scoreboard(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response) 
{ 
    return "sports/scoreboard"; 
} 

System File Path: 
WEB-INF/jsp/sports/scoreboard.jsp 

Browser Url: 
http://localhost:8080/igloo/sports/scoreboard 


Error: 
    HTTP Status 404 - /igloo/sports/WEB-INF/jsp/sports/scoreboard.jsp 

回答

5

只需添加一個領先/到您的InternalResourceViewResolverprefix

<property name="prefix" value="/WEB-INF/jsp/"></property> 

內部,JstlView使用HttpServletRequest#getRequestDispatcher(String)定位JSP。注意javadoc

指定的路徑名​​可能是相對的,儘管它不能在當前servlet上下文之外延伸 。如果路徑以「/」開始,則它被解釋爲相對於當前上下文根。

所以,如果你有沒有領先的/,它是相對於當前的路徑,這恰好是/sports,所以

sports/WEB-INF/jsp/sports/scoreboard.jsp 

爲您的應用程序不具有映射,因此返回404