1

注釈を使用すると、これは非常に簡単になります。

@Controller
public class MyController {

  @RequestMapping(value="/hitmycontroller", method= RequestMethod.OPTIONS)
  public static void options(HttpServletRequest req,HttpServletResponse resp){
    //Do options
  }
  @RequestMapping(value="/hitmycontroller", method= RequestMethod.GET)
  public static void get(HttpServletRequest req,HttpServletResponse resp){
    //Do get
  }
}

XMLでこれを行う方法が見つかりません。次のような処理を行うマッピング ハンドラはありますか。

<bean id="handlerMapping"
  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
      <mapping>
        <url>/hitmycontroller</url>
        <httpMethod>GET</httpMethod>
        <method>get</method>
        <controller>MyController</controller>
      </mapping>
      <mapping>
        <url>/hitmycontroller</url>
        <httpMethod>OPTIONS</httpMethod>
        <method>options</method>
        <controller>MyController</controller>
      </mapping>
  </property>
</bean>

任意のポインタをいただければ幸いです。

4

2 に答える 2

1

SimpleUrlHandlerMapping では、http メソッドを指定することはできません。おそらく、Spring MVC REST プロジェクト ( http://spring-mvc-rest.sourceforge.net/ )の MethodUrlHandlerMapping などの他のマッピングを使用する必要があります。

MethodUrlHandlerMapping を使用してマッピングを宣言する方法は、次のようになります。

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="GET /hitmycontroller">MyController</prop>
            <prop key="OPTIONS /hitmycontroller">MyController</prop>
        </props>
    </property>
</bean>

彼らのページで例を見ることができます:

http://spring-mvc-rest.sourceforge.net/introduction.html

パート2を見てください。

于 2013-07-05T14:15:46.097 に答える
0

注釈@RequestMappingが機能するはずです。xml 構成から handlerMapping Bean を削除し、MVC アノテーションを有効にするだけです。

設定例を次に示します。 base-package をコントローラー クラスを含むパッケージに変更します。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"

    xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

    <context:component-scan base-package="your.package" />
    <mvc:annotation-driven>
</beans>
于 2013-07-05T14:36:09.537 に答える