Как просмотреть файл htm в Spring MVC - PullRequest
0 голосов
/ 14 января 2012

Я использую конфигурацию по умолчанию Spring MVC 2. Итак, мой диспетчер будет выглядеть так:

 <prop key="index.htm">indexController</prop>

У меня есть простой файл htm в корне. Когда я просматриваю этот файл, я получаю 404: Ошибка не найдена. Как просмотреть ( физически существующие на диске ) htm-файлы в Spring MVC.

Ответы [ 4 ]

2 голосов
/ 17 января 2012

В Spring 3.x на основе аннотаций вы можете просто записать его в свой контроллер как

@RequestMaping(value="/index.htm")
public void doSomeJob(){
    //some code here
}

, и если вы сделаете запрос как «/pathToIt/index.htm», то это будетперехватывается методом doSomeJob () ..

PS Нет необходимости в отображении запросов в файлах конфигурации в Spring MVC 3.x

Примечание: А также 404 могут быть вызваны, если Spring не может найти вашфизический файл ..

1 голос
/ 17 января 2012

Хорошо, это звучит знакомо, если вы используете MVC 2, тогда лучший способ добиться этого - дать конкретное отображение для сервлета-диспетчера вместо /

    <servlet>
      <servlet-name>myDispatcherServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>myDispatcherServlet</servlet-name>
    <url-pattern>*.jsp</url-pattern>
  </servlet-mapping>

.Диспетчерская служба отправит только запросы к * .jsp, а остальные будут обрабатываться самим контейнером.

1 голос
/ 17 января 2012

Вам необходимо сопоставить URL index.htm с вашим контроллером. Вы не можете просматривать свою страницу, пока она не будет иметь правильную конфигурацию Spring MVC.

<bean name="/index.htm" class="com.indexController">
 ....
</bean>

В контроллере вы передадите имя своей JSP-страницы как view в modelAndView.

Проверьте правильность настройки распознавателя вида, например:

<!-- View Resolver -->
<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix">
        <value>/WEB-INF/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>
1 голос
/ 14 января 2012

Попробуйте добавить идентификатор компонента в файл springmvc-servlet.xml:

<bean id="indexController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>

тогда:

   <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
       <property name="mappings">
        <props>
               ...
           <prop key="/index.htm">indexController</prop>
         </props>
       </property>
    </bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...