spring mvc - 如何映射多个子文件夹

时间:2014-01-06 21:16:50

标签: spring spring-mvc

Spring MVC:我在路径WEB-INF / jsp中有我的jsp文件。我想得到网址     _http:// mydomainname:8080 /冰屋/运动/记分牌 解决使用spring mvc。 jsp页面位于/WEB-INF/jsp/sports/scoreboard.jsp

以下是安装的详细信息,我在底部得到的错误:

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

1 个答案:

答案 0 :(得分:5)

只需在您的/ InternalResourceViewResolver {。}}中添加一个prefix。{/ p>

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

在内部,JstlView使用HttpServletRequest#getRequestDispatcher(String)来定位jsp。注意javadoc

  

指定的路径名​​可能是相对的,但不能扩展   在当前servlet上下文之外。如果路径以“/”开头   被解释为相对于当前上下文根。

因此,如果您没有前导/,则它与当前路径相关,恰好是/sports,所以

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

您的应用程序没有映射,因此返回404。