Springmvc Controller接口代码示例
spring mvc
controller控制器,是mvc中的部分c,为什么是部分呢?因为此处的控制器主要负责功能处理部分:
收集、验证请求参数并绑定到命令对象;
将命令对象交给业务对象,由业务对象处理并返回模型数据;
返回modelandview(model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。
1. 继承该接口 controller接口,重写对应方法,或者采用注解controller,自定义映射文件
@controller @requestmapping("/flight") public class controlflight /*implements controller*/ { }
需要注意的是:
simpleurlhandlermapping决定使用哪一个控制器。
其中对于prexf-servlet-.xml文件中使重定向方式:
1.第一种modelandview方式。
<!--基于url映射器--> <bean class="org.springframework.web.servlet.handler.simpleurlhandlermapping"> <property name="mappings"> <props> <prop key="start1.do">controlflight</prop> <prop key="buy.do">controlflight</prop> <prop key="flight.do">controlflight</prop> <prop key="result.do">controlflight</prop> <!--<prop key="start.do">logincontroller</prop>--> </props> </property> </bean> <!-- <bean id="logincontroller" class="org.springframework.web.servlet.mvc.parameterizableviewcontroller"> <property name="viewname" value="buy"/> </bean>--> <bean id="controlflight" class="com.qunar.flight.control.controlflight"/> <!--viewresolver映射--> <bean class="org.springframework.web.servlet.view.urlbasedviewresolver"> <property name="viewclass" value="org.springframework.web.servlet.view.jstlview"/> <property name="prefix" value="/web-inf/flight/"/> <property name="suffix" value=".jsp"/> <property name="order" value="1"/> </bean>
之后进入controller中进行任务分派:
@requestmapping(value = "/start.do", method = requestmethod.get) public modelandview buyairticket() { return new modelandview("buy"); }
2 第二种采用
<!--基于url映射器--> <bean class="org.springframework.web.servlet.handler.simpleurlhandlermapping"> <property name="mappings"> <props> <prop key="start.do">logincontroller</prop> </props> </property> </bean> <bean id="logincontroller" class="org.springframework.web.servlet.mvc.parameterizableviewcontroller"> <property name="viewname" value="buy"/> </bean>
然后和下面的部分代码实现url拼接
<!--viewresolver映射--> <bean class="org.springframework.web.servlet.view.urlbasedviewresolver"> <property name="viewclass" value="org.springframework.web.servlet.view.jstlview"/> <property name="prefix" value="/web-inf/flight/"/> <property name="suffix" value=".jsp"/> <property name="order" value="1"/> </bean>
还有另一种方法:
就是直接使用这个命令,但是前提条件是,请求uri的前缀(过滤掉.vm,.htm等)和转发的一样,则直接可以使用
<bean id="logincontroller" class="org.springframework.web.servlet.mvc.urlfilenameviewcontroller"/>
3 继承abstractcontrolle 接口,并实现相应的方法,次方法和controller相同,但是对于如果想封装表单请求,可以直接使用commandcontroller,-->abstractcommandcontroller(3.0以上版本废弃)
4. 注解@requestmapping("/path") -->在类级别上定义注解时,那么再用此方法注解方法method时,那么method下的路径是与类路径相对。
@pathvariable 该注释是用来指明url路径里面取参数,这个注解可以多个使用,下面时使用一种的代码片段
@requestmapping("/flight/{name}") public modelandview toadd(@pathvariable("name") string name){ modelandview mav = new modelandview("buy"); return mav; }
总结
以上就是本文关于springmvc controller接口代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
springmvc开发restful api之用户查询代码详解
如有不足之处,欢迎留言指出。