Spring MVC: Как разрешить путь к подкаталогам корневой папки 'JSP' в веб-приложении

Я сказал бы mbUnit также, мне нравится способность запустить единственный тест много раз только путем определения исходных данных и результата прямо выше тестовой функции. Ужасное описание того, что я имею в виду так здесь, является ссылкой, которая показывает Вам, что я имею в виду.

10
задан chrisjleu 23 November 2009 в 21:26
поделиться

5 ответов

Вам необходимо установить свойство следующим образом:

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

, а затем вы можете получить доступ к URI secure / admin1.jsp

0
ответ дан 4 December 2019 в 02:50
поделиться

Вы можете попробовать дать имена представлений в Контроллере, например

<property name="formView" value="secure/admin"/>
<property name="successView" value="secure/admin2"/>

с префиксом и суффиксом, отображаемым, как показано ниже

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

Это в конечном итоге будет отображаться в / WEB-INF / jsp / secure / admin .jsp и /WEB-INF/jsp/secure/admin2.jsp

1
ответ дан 4 December 2019 в 02:50
поделиться

Мне не удалось найти точное решение заданного мной вопроса, но у меня есть обходной путь, соответствующий моим конкретным требованиям. Проблема, кажется, кроется в отображении рук. Если указано, как в примере в сообщении, любые запросы к страницам в защищенной папке приводят к неудачной попытке найти фактический файл JSP в папке / WEB-INF / JSP / , когда, конечно, фактический файл находится в / WEB-INF / jsp / secure / .

Однако, если указано так:

 <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <props>
    <prop key="/login.htm">loginFormController</prop>
    <prop key="**/*.htm">urlFilenameViewController</prop>
   </props>
  </property>
 </bean>

Тогда все страницы разрешаются правильно. Запрос к /login.html перейдет к конкретному контроллеру формы, но запросит ко всем другим страницам, независимо от того, находятся ли они в корневом каталоге JSP или будет найден подкаталог. Для меня это нормально, потому что то, что я действительно искал, было способом избежать указания контроллера для каждой страницы в приложении (хммм ... возможно, я должен был прояснить это в первом посте - и, возможно, есть способы лучше все равно сделать это (?)). ** / *. Htm действует как универсальный случай, и любые страницы, которые я хочу обрабатывать другим контроллером, могут быть явно указаны над этим свойством, как показано в /login.htm .

2
ответ дан 4 December 2019 в 02:50
поделиться

Вам необходимо установить для свойства alwaysUseFullPath в обработчике значение true:

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    ...
    <property name="alwaysUseFullPath" value="true" />
</bean>

Это заставит обработчик использовать часть URI «/ secure /», а затем преобразователь будет включать это при поиске JSP в WEB-INF / jsp.

1
ответ дан 4 December 2019 в 02:50
поделиться

Попробуйте использовать UrlFilenameViewController или вернуть новый ModelAndView ("secure / login");

2
ответ дан 4 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: