使用注解会很容易:
@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>
如有任何指点,我们将不胜感激。
最佳答案
使用 SimpleUrlHandlerMapping 不可能指定 http 方法。可能您必须使用其他映射,例如 Spring MVC REST 项目中的 MethodUrlHandlerMapping (http://spring-mvc-rest.sourceforge.net/)。
使用 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 部分。
关于java - 配置 Spring MVC 以将 GET 请求映射到 Controller 中的一个方法,并将 OPTIONS 请求映射到另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17489660/