我想在我的jsps文件夹中设置一个jsp文件作为应用程序的默认视图。我们有什么方法可以告诉<welcome-file-list>
abc.jsp
需要默认,它可以在这样的道路上找到。 url模式也是html,所以有一种方法可以在Spring MVC中映射。
例如 - 当用户键入www.example.com
时,我希望应用程序指向abc.jsp
页面,当有人键入www.example.com/something
时,即使然后应用程序应该指向abc.jsp
,但url模式不应该被破坏。
加
<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。
例如 - 当用户键入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设计中的一个缺陷(使用视图作为控制器)。但如果你真的要求它..
解决了 -
欢迎文件列表中的文件必须是真实文件,因此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,但它必须是一个实际的文件。与serv无关,在servlet规范中声明它必须是这种方式,虽然行为可能因应用程序服务器不同而不同,但一般来说它必须是真正的文件。
我希望这有助于某人
这一切都可以通过添加来解决
<mvc:default-servlet-handler>
到你的春天../WEB-INF/dispatcher-servlet.xml
这将为您安排一切。