Setting the default jsp view with spring mvc

前端 未结 4 1718
陌清茗
陌清茗 2020-12-08 08:06

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

相关标签:
4条回答
  • 2020-12-08 08:38

    This all behavior can be resolved by adding

    <mvc:default-servlet-handler>
    

    to your spring ../WEB-INF/dispatcher-servlet.xml
    This will arrange it all for you.

    0 讨论(0)
  • 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..

    0 讨论(0)
  • 2020-12-08 08:55

    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.

    0 讨论(0)
  • 2020-12-08 08:57

    Solved -

    A file in the welcome file list has to be a real file , hence abc.htm did not work. The only way to accomplish was to create an index.jsp and redirect it using

    <jsp:forward page="abc.html" />
    

    also in yourapplication-servlet.xml you need to specify the bean mapping like

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

    A welcome-file has to be a REAL file on the file system it doesn't work with mapped urls. You can create an index.jsp which redirects to the mapped url, but it has to be an actual file. Nothing to do with spring it is stated in the servlet spec that it has to be this way, although behavior might vary on different app servers in general it has to be a real file.

    I hope this help someone

    0 讨论(0)
提交回复
热议问题