Настройка представления jsp по умолчанию с помощью spring mvc
Я хочу установить один из jsp файлов в папку jsps в качестве представления по умолчанию для приложения. Можно ли в <welcome-file-list>
указать, что abc.jsp
должен быть по умолчанию, и его можно найти в таком-то и том же пути. Также шаблон url является html, поэтому есть способ, которым он может быть отображен в Spring MVC.
Например - Когда пользователь набирает www.example.com
, я хочу, чтобы приложение направлялось на страницу abc.jsp
, а также когда кто-то набирал www.example.com/something
, даже тогда приложение должно направить на abc.jsp
, но шаблон url не должен быть скомпрометированы.
Ответы
Ответ 1
Добавить
<mvc:view-controller path="/" view-name="abc"/>
в файл конфигурации. Затем ROOT разрешит просмотр abc. Затем добавьте
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
в файл конфигурации. Это разрешит просмотр/WEB-INF/view/abc.jsp.
Ответ 2
Например - когда пользователь набирает www.example.com, я хочу, чтобы приложение направлялось на страницу abc.jsp
Настройте его как <welcome-file>
в web.xml
следующим образом:
<welcome-file-list>
<welcome-file>/abc.jsp</welcome-file>
</welcome-file-list>
а также когда кто-то набирает www.example.com/something, даже тогда приложение должно направить на abc.jsp, но шаблон url не должен быть скомпрометирован.
Другими словами, вы хотите переслать несуществующие ресурсы (что приведет к ошибке HTTP 404 Page Not Found) в тот же файл? Затем определите его как <error-page>
в web.xml
:
<error-page>
<error-code>404</error-code>
<location>/abc.jsp</location>
</error-page>
Но ваш вопрос на самом деле немного неоднозначен. Если вы на самом деле не имели в виду выше, и на самом деле хотите использовать /abc.jsp
как "контроллер страницы", тогда вам нужно определить его как <servlet>
в web.xml
:
<servlet>
<servlet-name>controller</servlet-name>
<jsp-file>/abc.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
(как <welcome-file>
, так и <error-page>
здесь не нужны)
Это, однако, недостаток в конструкции MVC (с использованием представления в качестве контроллера). Но если вы действительно просите об этом.
Ответ 3
Решено -
Файл в списке приветственных файлов должен быть реальным, поэтому abc.htm не работает.
Единственный способ сделать это - создать index.jsp и перенаправить его с помощью
<jsp:forward page="abc.html" />
также в файле yourapplication-servlet.xml вам нужно указать сопоставление bean, например
<bean name="/abc.html" class="package.mypack.someController">
<property name="commandClass" value="package.mypack..something"/>
<property name="formView" value="abc"/>
<property name="successView" value="abc.htm"/>
</bean>
Приветственный файл должен быть файлом REAL в файловой системе, который не работает с отображаемыми URL-адресами. Вы можете создать index.jsp, который перенаправляет на отображаемый url, но он должен быть фактическим файлом. Ничего общего с spring в спецификации сервлета указано, что он должен быть таким образом, хотя поведение может отличаться на разных серверах приложений в целом, оно должно быть реальным файлом.
Я надеюсь, что это поможет кому-то
Ответ 4
Это все поведение можно решить, добавив
<mvc:default-servlet-handler>
на ваш spring ../WEB-INF/dispatcher-servlet.xml
Это все устроит для вас.