Я сказал бы mbUnit также, мне нравится способность запустить единственный тест много раз только путем определения исходных данных и результата прямо выше тестовой функции. Ужасное описание того, что я имею в виду так здесь, является ссылкой, которая показывает Вам, что я имею в виду.
Вам необходимо установить свойство следующим образом:
<property name="prefix" value="/WEB-INF/jsp/"/>
, а затем вы можете получить доступ к URI secure / admin1.jsp
Вы можете попробовать дать имена представлений в Контроллере, например
<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
Мне не удалось найти точное решение заданного мной вопроса, но у меня есть обходной путь, соответствующий моим конкретным требованиям. Проблема, кажется, кроется в отображении рук. Если указано, как в примере в сообщении, любые запросы к страницам в защищенной папке приводят к неудачной попытке найти фактический файл 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
.
Вам необходимо установить для свойства alwaysUseFullPath в обработчике значение true:
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
...
<property name="alwaysUseFullPath" value="true" />
</bean>
Это заставит обработчик использовать часть URI «/ secure /», а затем преобразователь будет включать это при поиске JSP в WEB-INF / jsp.
Попробуйте использовать UrlFilenameViewController
или вернуть новый ModelAndView ("secure / login");