簡體   English   中英

使用spring mvc設置默認的jsp視圖

[英]Setting the default jsp view with 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模式不應妥協。

<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頁面

web.xml中將其配置為<welcome-file> ,如下所示:

<welcome-file-list>
    <welcome-file>/abc.jsp</welcome-file>
</welcome-file-list>

當有人輸入www.example.com/something時,即使那時應用程序也應該指向abc.jsp,但url模式不應該被破壞。

換句話說,您希望將不存在的資源(因此會導致HTTP 404 Page Not Found錯誤)轉發到同一個文件? 然后在web.xml中將其定義為<error-page>

<error-page>
    <error-code>404</error-code>
    <location>/abc.jsp</location>
</error-page>

但你的問題實際上有點含糊不清。 如果您實際上並不是指上述內容並且實際上想要將/abc.jsp用作“頁面控制器”,那么您需要在web.xml中將其定義為<servlet>

<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
這將為您安排一切。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM