使用spring mvc设置默认的jsp视图

Wal*_*ker 17 java jsp spring-mvc

我想在我的jsps文件夹中设置一个jsp文件作为应用程序的默认视图.有什么办法可以告诉我们在<welcome-file-list>那个abc.jsp需要被默认,它可以在这样或那样的路径中.url模式也是html,所以有一种方法可以在Spring MVC中映射.

例如 - 当用户键入时www.example.com,我希望应用程序指向abc.jsp页面,并且当有人键入时www.example.com/something,即使应用程序应该指向abc.jsp,但是url模式也不应该被破坏.

Rob*_*ond 34

<mvc:view-controller path="/" view-name="abc"/>
Run Code Online (Sandbox Code Playgroud)

到配置文件.然后ROOT将解析为abc视图.然后加

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

到配置文件.这会将视图解析为/WEB-INF/view/abc.jsp.


Bal*_*usC 16

例如 - 当用户键入www.example.com时,我希望应用程序指向abc.jsp页面

其配置为<welcome-file>web.xml类似如下:

<welcome-file-list>
    <welcome-file>/abc.jsp</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)

当有人输入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>
Run Code Online (Sandbox Code Playgroud)

但你的问题实际上有点含糊不清.如果您实际上并不是指上述内容并且实际上想要/abc.jsp用作"页面控制器",那么您需要将其定义为<servlet>in in 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>
Run Code Online (Sandbox Code Playgroud)

(这里不需要<welcome-file><error-page>)

然而,这是MVC设计中的一个缺陷(使用视图作为控制器).但如果你真的要求它..