美文网首页
SpringMVC入门程序---注解

SpringMVC入门程序---注解

作者: 常威爆打来福 | 来源:发表于2018-04-22 16:19 被阅读0次

    一 注解的处理器映射器

    在spring 3.1 之前使用
    org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

    在spring 3.1 之后使用
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

    二 注解的适配器

    在spring3.1 之前使用
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

    在spring3.1 之后使用
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

    三 实现

    1 web.xml

    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
            "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app>
        <display-name>Archetype Created Web Application</display-name>
        <servlet>
            <!--Spring MVC前端控制器-->
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!--contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)
                        若不配置,默认加载WEB-INF/servlet名称-servlet(springmvc-servlet.xml)-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:SpringMVC/Springmvc.xml</param-value>
            </init-param>
        </servlet>
        <!--第一种:*.action,访问以.action结尾,由DispatcherServlet进行解析
            第二种:/,所有访问的地址由DispatcherServlet进行解析,对静态文件的解析需要配置不让DispatcherServlet进行解析,
                    使用此种方式和实现RESTful风格的url
            第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会由DispatcherServlet解析jsp地址, 不能根据jsp页面找到handler,会报错 -->
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>*.action</url-pattern>
        </servlet-mapping>
    </web-app>
    

    2 SpringMVC.xml

    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:mvc="http://www.springframework.org/schema/tool"
           xmlns:mac="http://www.springframework.org/schema/cache"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/tool
            http://www.springframework.org/schema/tool/spring-tool.xsd
            http://www.springframework.org/schema/cache
            http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--注解映射器-->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
        <!--注解适配器-->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
        <!--对于单个注解的Handler可以单个配置,实际开发过程中使用扫描
        <bean class="controller.ItemsController3"/>-->
        <context:component-scan base-package="controller"></context:component-scan>
    
        <!--实际开发使用<mac:annotation-driven>,代替映射器和适配器的配置-->
    
        <!--<mac:annotation-driven></mac:annotation-driven>-->
    
        <!-- 视图解析器 解析jsp,默认使用jstl,classpath下要有jstl的包 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
    </beans>
    

    3 ItemsController3.java

    package controller;
    
    import entity.ItemsBean;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @author: Y
     * @date: 2018/4/22
     */
    @Controller
    public class ItemsController3  {
        /**
         * 功能描述: 商品列表查询
         *
         * @param:
         * @return: ModelAndView
         * @throws: Exception
         */
        @RequestMapping("/queryItems")
        public ModelAndView queryItems() throws Exception{
            List<ItemsBean> list = new ArrayList<ItemsBean>();
    
            ItemsBean items1 = new ItemsBean();
            items1.setName("小米MIX2S");
            items1.setPrice(3888);
            items1.setDetail("便宜不贵,实惠");
    
            ItemsBean items2 = new ItemsBean();
            items2.setName("iphone X");
            items2.setPrice(8888);
            items2.setDetail("穷人用苹果");
    
            ItemsBean items3 = new ItemsBean();
            items3.setName("华为P20");
            items3.setPrice(9999);
            items3.setDetail("低调奢华");
    
            list.add(items1);
            list.add(items2);
            list.add(items3);
    
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("items",list);
            modelAndView.setViewName("/index.jsp");
            return modelAndView;
        }
    }
    
    注解适配器和映射器

    四 前缀和后缀

        <!-- 视图解析器 解析jsp,默认使用jstl,classpath下要有jstl的包 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!--配置jsp路径的前缀-->
            <property name="prefix" value="/"></property>
            <!--配置jsp路径的后缀-->
            <property name="suffix" value=".jsp"></property>
        </bean>
    
    
    
    //        ModelAndView modelAndView = new ModelAndView();
    //        modelAndView.addObject("items",list);
    //        modelAndView.setViewName("index");
    //        return modelAndView;
    

    相关文章

      网友评论

          本文标题:SpringMVC入门程序---注解

          本文链接:https://www.haomeiwen.com/subject/qnsdhftx.html