• springMVC入门截图


    mvc在bs系统下的应用

    ----------------------------------------------------

    在web.xml中配置前端控制器(系统提供的一个servlet类  只需配置即可  无需程序员开发 )

    --------------------------------------------------------------

    ------------------------

    非注解适配器

    使用A适配器能够执行实现Controller接口的handler

    package org.ssm.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    import org.ssm.po.Items;
    
    //实现controller接口的处理器
    public class ItemsController1 implements Controller{
    
        public ModelAndView handleRequest(HttpServletRequest arg0,
                HttpServletResponse arg1) throws Exception {
            // TODO Auto-generated method stub
            //调用service查找 数据库,查询商品列表,这里使用静态数据模拟
            List<Items> itemsList = new ArrayList<Items>();
            //向list中填充静态数据
            
            Items items_1 = new Items();
            items_1.setName("联想笔记本");
            items_1.setPrice(6000f);
            items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
            
            Items items_2 = new Items();
            items_2.setName("苹果手机");
            items_2.setPrice(5000f);
            items_2.setDetail("iphone6苹果手机!");
            
            itemsList.add(items_1);
            itemsList.add(items_2);
            
            //这个方法需要返回modelAndView  所以创建
            ModelAndView modelAndView=new ModelAndView();
            //这个方法九相当于request.setAttribute
            modelAndView.addObject("itemsList", itemsList);
            //指定视图
            modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
            
            return modelAndView;
        }
        
    
    }

    使用B适配器能够执行 实现HttpRequestHandler接口的handler

    package org.ssm.controller;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.HttpRequestHandler;
    import org.ssm.po.Items;
    
    public class ItemsController2 implements HttpRequestHandler{
        //这个handler对应的适配器类是 org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
        public void handleRequest(HttpServletRequest arg0, HttpServletResponse arg1)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            //调用service查找 数据库,查询商品列表,这里使用静态数据模拟
            List<Items> itemsList = new ArrayList<Items>();
            //向list中填充静态数据
            
            Items items_1 = new Items();
            items_1.setName("联想笔记本");
            items_1.setPrice(6000f);
            items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
            
            Items items_2 = new Items();
            items_2.setName("苹果手机");
            items_2.setPrice(5000f);
            items_2.setDetail("iphone6苹果手机!");
            
            itemsList.add(items_1);
            itemsList.add(items_2);
            arg0.setAttribute("itemsList", itemsList);
            //早期servlet程序转发操作
            arg0.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(arg0, arg1);
            
            //使用哪个适配器都可以  但是这个适配器 可以通过response对象 来设置响应数据的格式
            
        }
    
    }

    ----------

    jsp页面

    --------------------

    非注解映射器

    -----------------------------

    视图解析器

    -f---------------------

    注解映射器、适配器

    ------------------------------------

    使用注解方式开发的handler

    package org.ssm.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    import org.ssm.po.Items;
    
    //使用注解开发的handler 不需要实现接口  这个注解和spring阶段 把action对象注入bean容器时使用的注解一样  导入的包也一样
    //要明白  这里就是把该headler注入进spring容器中
    @Controller
    //使用注解标识这是一个handler
    public class ItemsController3 {
        //这里边可以编写任意多个方法  没有之前实现指定的接口时  只能覆写指定接口的局限性
        //使用注解标识映射路径 即将来访问的路径  建议映射路径和类名一样  action写不写都行
        //@RequestMapping实现对query1方法的一个映射   一个方法对应一个url 
        @RequestMapping("/query1.action")
        public ModelAndView query1()throws Exception{
            //调用service查找 数据库,查询商品列表,这里使用静态数据模拟
            List<Items> itemsList = new ArrayList<Items>();
            //向list中填充静态数据
            
            Items items_1 = new Items();
            items_1.setName("联想笔记本");
            items_1.setPrice(6000f);
            items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
            
            Items items_2 = new Items();
            items_2.setName("苹果手机");
            items_2.setPrice(5000f);
            items_2.setDetail("iphone6苹果手机!");
            
            itemsList.add(items_1);
            itemsList.add(items_2);
            //创建modelAndView
            ModelAndView modelAndView=new ModelAndView();
            modelAndView.addObject(itemsList);
            //指定视图
            modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
            return modelAndView;
        }
    
    }

    然后再配置文件中配置该handler   推荐使用注解扫描方式(对标记@Controller类中标识有@RequestMapping的方法进行映射  在@RequestMapping里边定义映射的url)  

    否则 一个handler类就需要配置一个bean 

     --------------------------------

    视图解析器的前缀和后缀配置

    注意:如果配置了前缀和后缀  那么 在handler设置视图路径的时候 就不能在指定完整的路径了  但是有一个handler除外

    不能指定完整路径的handler:1.实现Controller接口 以及2.注解方式实现的handler

    1.

    2.

    路径为:

    在配置了前缀和后缀之后  仍然需要指定完整路径的handler:实现了HttpRequesstHandler接口的handler

     路径仍然为:

     

    ----------------------------

  • 相关阅读:
    今天碰到的angular 中的一个小坑
    mvc 防止客服端多次提交
    自定义通用Distinct去除重复数据的2中方式
    Sql 字符串操作类COALESCE
    SQL Server 性能优化
    Visual Studio Tip: Get Public Key Token for a Strong Named Assembly
    C#发送邮件
    Web打印组件jatoolsPrinter(转载)
    SQL SERVER 2005 同步复制技术(转)
    [Asp.net]常见word,excel,ppt,pdf在线预览方案(转)
  • 原文地址:https://www.cnblogs.com/Joke-Jay/p/7436562.html
Copyright © 2020-2023  润新知