java - Spring MVC default controller -


i have temporary solution , i'll explain bellow, i'm looking if there's better solution.

i have basic spring 4 mvc app web.xml configurations (no maven). web.xml follows:

    <?xml version="1.0" encoding="utf-8"?>     <web-app ...>         <context-param>             <param-name>contextconfiglocation</param-name>             <param-value>/web-inf/applicationcontext.xml</param-value>         </context-param>         <listener>             <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>         </listener>         <servlet>             <servlet-name>dispatcher</servlet-name>             <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>             <load-on-startup>2</load-on-startup>         </servlet>         <servlet-mapping>             <servlet-name>dispatcher</servlet-name>             <url-pattern>/</url-pattern>         </servlet-mapping>         <session-config>             <session-timeout>                 30             </session-timeout>         </session-config>         <welcome-file-list>             <welcome-file>redirect.jsp</welcome-file>         </welcome-file-list>     </web-app> 

and dispatcher-servlet.xml:

<?xml version='1.0' encoding='utf-8' ?> <beans ...>     <bean class="org.springframework.web.servlet.mvc.support.controllerclassnamehandlermapping"/>     <bean class="controllers.controller"></bean>     <bean class="controllers.homecontroller"></bean>     <bean id="viewresolver"           class="org.springframework.web.servlet.view.internalresourceviewresolver"           p:prefix="/web-inf/jsp/"           p:suffix=".jsp" /> </beans> 

i deleted part create simple in-xml (urlmapping) controller index view, because index page needs backend work done well.

currently / requests handled controller class, while /home/ requests handled homecontroller class (because spring, default, makes path controller name primary url path, right?)

my question is, possible , if yes, how can make homecontroller class default controller. don't have have controller class.

for familiar asp.net mvc, want how whether go site.com/home/index or site.com, both times reference same controller.

i want create spring automatically connects site.com route in homecontroller class.

i hope i'm clear enough. i'll answer unclear questions , welcome answers or documentations! thanks!

i haven't tried this, think should work.

create new class extends controllerclassnamehandlermapping, , override generatepathmappings method if controller annotated @requestmapping use annotation's value path instead of controller's name.

public class mycontrollerclassnamehandlermapping extends controllerclassnamehandlermapping {      @override     protected string[] generatepathmappings(class<?> beanclass) {         if (beanclass.isannotationpresent(requestmapping.class)) {             requestmapping mapping = beanclass.getannotation(requestmapping.class);             return mapping.value();         }         return super.generatepathmappings(beanclass);     } } 

annotate homecontroller @ class level (not method level) @requestmapping({"/", "/home"}).

in bean definitions of dispatcher-servlet.xml, replace spring's controllerclassnamehandler mycontrollerclassnamehandler.


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -