Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting the default jsp view with spring mvc

I want to set one of jsp files in my jsps folder as the default view for the application. Is there any way we can tell in <welcome-file-list> that abc.jsp needs to be default and it can be found in such and such path. Also the url pattern is html so is there a way it can be mapped in Spring MVC.

For example - When a user types www.example.com , I want the application to direct to abc.jsp page and also when someone types www.example.com/something, even then application should direct to abc.jsp, but the url pattern shouldnt be compromised.

like image 850
Walker Avatar asked Mar 24 '10 20:03

Walker


2 Answers

Add

<mvc:view-controller path="/" view-name="abc"/>

to the config file. Then the ROOT will resolve to the abc view. Then add

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

to the config file. This will resolve the view to /WEB-INF/view/abc.jsp.

like image 189
Robby Pond Avatar answered Sep 17 '22 16:09

Robby Pond


For example - When a user types www.example.com , I want the application to direct to abc.jsp page

Configure it as a <welcome-file> in the web.xml like follows:

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

and also when someone types www.example.com/something, even then application should direct to abc.jsp, but the url pattern shouldnt be compromised.

In other words, you'd like to forward non-existing resources (which thus would result in a HTTP 404 Page Not Found error) to the same file? Then define it as an <error-page> in the web.xml as well:

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

But your question is actually a bit ambiguous. If you actually didn't mean the above and actually want to use /abc.jsp as the "page controller", then you need to define it as a <servlet> in web.xml instead:

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

(both the <welcome-file> and the <error-page> are not needed here)

This is however a flaw in the MVC design (using a view as controller). But if you're actually asking for it..

like image 45
BalusC Avatar answered Sep 18 '22 16:09

BalusC