• BeanNameViewResolver类简介说明


    转自:

    BeanNameViewResolver类简介说明

    下文笔者讲述BeanNameViewResolver类的简介说明,如下所示:

    BeanNameViewResolver视图解析器同XmlViewResolver相同,
    都是使用逻辑视图名称同bean对象进行匹配解析
    

    例:   使用模板生成excel文件

    控制器配置control-context.xml
    
    
     
        
            
        
    
    
    
        
          
            viewController
        
      
    
    
    Excel视图ExcelView.java
    
    public class ExcelView extends AbstractExcelView {
        protected void buildExcelDocument(Map model,
                HSSFWorkbook wb, HttpServletRequest request, HttpServletResponse reqponse)
                throws Exception {
            
            //...
             Object[] datas = (Object[]) model.get("data");
            //...        
            
            HSSFSheet sheet;
            //get the sheet 1 in template
            sheet = wb.getSheetAt(0);
            //handle this sheet
            //...
        }
    }
    
    实现 org.springframework.web.servlet.view.document.AbstractExcelView 类中的 buildExcelDocument方法。
    
    3. ViewController控制器 ViewController.java
    public class ViewController extends MultiActionController {
        private DataModel dataModel;
        public void setDataModel(DataModel dataModel){
            this.dataModel = dataModel;
        }
        
        public ModelAndView exportToExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {
            Map model=new HashMap();
            Object[] datas;
            datas = dataModel.getDatas.toArray();
            model.put("data", datas);
            ExcelView excelView = new ExcelView();
            excelView.setApplicationContext(this.getWebApplicationContext());
            excelView.setUrl("/WEB-INF/Template");
            
            return new ModelAndView(excelView,model);
        }
    }
    
    4. 配置web.xml
    
       viewController
       org.springframework.web.servlet.DispatcherServlet
       
           contextConfigLocation
           /WEB-INF/config/control-context.xml
       
       1
    
    
       viewController
       *.report
    
    
    5. 运行http://hostname/view/exportToExcel.report
    

    例2: TestView

    1.在SpringMVC配置文件中添加BeanNameViewResolver
    
      
          
         
    
      
      
          
          
    
    
    2.创建一个TestView类,实现View接口
    
    import java.util.Date;  
    import java.util.Map;  
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
    import org.springframework.stereotype.Component;  
    import org.springframework.web.servlet.View;  
    
    @Component  
    public class TestView implements View{  
        public String getContentType() {  
            // TODO Auto-generated method stub  
            return "text/html";  
        }  
        public void render(Map model, HttpServletRequest request,  
                HttpServletResponse response) throws Exception {  
            // TODO Auto-generated method stub  
            response.getWriter().print("Welcome to View:"+new Date());   
        }  
    }
    
    3.创建控制器
    import org.springframework.stereotype.Controller;  
    import org.springframework.web.bind.annotation.RequestMapping;  
      
    @RequestMapping(value="/springmvc")  
    @Controller  
    public class MyView {  
        @RequestMapping(value="/testMyView")  
        public String testView(){  
            System.out.println("testView");  
            return "helloView";
        }  
    }
    
    此时return的是视图名的第一个字母小写
    springmvc会根据这个helloView名,去getBean,得到这个视图对象
  • 相关阅读:
    windows查找管理端口常用命令
    C++第十单元 查找与检索10.1 顺序查找10.2 二分查找
    x86-7-页式管理(Paging)
    联想电脑去掉开机广告 关闭开机广告 ideapad 去掉开机广告
    【实战系列】OpenApi设计规范
    MYSQL的安装
    Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.5 Qemu实现RTC设备
    大数据背景下的信息资源管理
    ES6中的WeakMap和WeakSet:特性和用途
    强化学习中SARSA(State-Action-Reward-State-Action)和Q-learning的区别
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127782495