이 HandlerMapping은 Ant 스타일의 path 매칭(특수 문자 사용을 말하는 듯 합니다.)을 사용할 수 있습니다.

<web-app>
    ...
    <servlet>
        <servlet-name>sample</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- maps the sample dispatcher to *.form -->
    <servlet-mapping>
        <servlet-name>sample</servlet-name>
        <url-pattern>*.form</url-pattern>
    </servlet-mapping>

    <!-- maps the sample dispatcher to *.html -->
    <servlet-mapping>
        <servlet-name>sample</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
    ...
</web-app>

위와 같이 설정해두면 .form 과 .html 로 끝나는 request들을 sample-context.xml 이라는 DispatcherServlet에서 처리하게 됩니다.

<beans>
       
    <!-- no 'id' required, HandlerMapping beans are automatically detected by the DispatcherServlet -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <value>
                /*/account.form=editAccountFormController
                /*/editaccount.form=editAccountFormController
                /ex/view*.html=helpController
                /**/help.html=helpController
            </value>
        </property>
    </bean>

    <bean id="helpController"
          class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>

    <bean id="editAccountFormController"
          class="org.springframework.web.servlet.mvc.SimpleFormController">
        <property name="formView" value="account"/>
        <property name="successView" value="account-created"/>
        <property name="commandName" value="Account"/>
        <property name="commandClass" value="samples.Account"/>
    </bean>
<beans>

위의 설정 파일에서 ant 스타일의 문자를 사용하여 다수의 요청을 하나의 특정 컨트롤러에서 처리하도록 설정하였습니다.

ant 스타일에 대한 내용은 여기서 확인할 수 있습니다.

  • ? 는 문자 하나에 매칭하고
  • * 는 빵개에서 여러개의 문자에 매칭하고
  • ** 는 빵개에서 여러개의 디렉토리에 매칭합니다.

사용자 삽입 이미지