介绍
SpringMVC的Handler通过实现Controller接口外,还可以通过继承AbstractController这个抽象类来实现。
实践
创建Handler。
public class ItemExtendsAbstractController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("执行了AbstractController处理器!!!");
return null;
}
}
配置Handler到处理器映射器。
<!-- ##################################配置Handler处理器################################## -->
<bean id="itemExtendsController" class="cn.domarvel.controller.ItemExtendsAbstractController"></bean>
<!-- ##################################配置处理器映射器##################################### -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="showItemExtendsController.action">itemExtendsController</prop>
</props>
</property>
</bean>
<!-- ################################################################################## -->
既然我们的Handler是继承的一个抽象类。那么它一定有某些特殊的功能了。
比如:让某些请求方式才能够访问该Handler。
目标:我想只让GET方式才能够访问该Handler。
它的父类中有一个这样的参数:supportedMethods。在里面可以注入你的Handler默认支持的请求方式(GET,POST)。不注入参数时默认两种都支持(GET,POST)。
每次执行Handler时,都会进行Handler支持的请求方式检查。
通过查看supportedMethods是否为空或者是否包含该请求方式来判断。
配置文件:
<!-- ##################################配置Handler处理器################################## -->
<bean id="itemExtendsController" class="cn.domarvel.controller.ItemExtendsAbstractController">
<property name="supportedMethods">
<array>
<value>POST</value>
</array>
</property>
</bean>
<!-- ##################################配置处理器映射器##################################### -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="showItemExtendsController.action">itemExtendsController</prop>
</props>
</property>
</bean>
<!-- ################################################################################## -->
好!非常Nice!!!