2014-01-06 5 views
1

Spring MVC: У меня есть файлы jsp в пути WEB-INF/jsp. Я хочу получить url
_http: // mydomainname: 8080/igloo/sports/табло для решения проблемы с использованием весны mvc. Страница 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) найти СПЯ. Обратите внимание на javadoc

Указанное имя пути может быть относительным, хотя оно не может распространять за пределами текущего контекста сервлета. Если путь начинается с «/», он интерпретируется как относительно текущего корня контекста.

Так что, если вы не ведущий /, это не относительно текущего пути, который бывает /sports, так

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

, для которых ваше приложение не имеет отображение и, следовательно, возвращает 404.

Смежные вопросы