• 后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节10(核心对象,视图解析器,BeanNameViewResolver)


    1、概念

      当使用BeanNameViewResolver时,viewName的含义为bean的ID或name,返回值为View对象或它的子类。

      它会从上下文中根据viewName获取View对象,默认的上下文有两个WebApplicationContext,ApplicationContext。ApplicationContext为WebApplicationContext的父上下文。

      WebApplicationContext,它根据spring-mvc的配置信息创建。

      ApplicationContext,它是配置数据源,事务,注入Service等,它是根据application-context的配置信息创建。

    2、使用

      第一步,使用内置的View对象或者实现View接口自定义View对象。

      第二步,在上下文中注入View对象,在webApplicationContext,ApplicationContext二者之间选择其一。

      第三步,注册BeanNameViewResolver对象,

      第四步,handler的返回值为View对象的标识,id,name,alias都可

    3、示例

      1、第一步,注入BeanNameViewResolver,调用registry的beanName方法。

    /**
     * 配置视图解析器
     */
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
    	// 注册BeanNameViewResolver
    	registry.beanName();
    	// 注册
    	registry.viewResolver(getInternalResourceViewResolver());
    }
    

      2、第二步,编写自定义视图类MyView实现View接口。

    public class MyView implements View {
    
    	@Override
    	public String getContentType() {
    		return "text/html";
    	}
    
    	@Override
    	public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
    		response.setContentType(getContentType());
    		response.setCharacterEncoding("UTF-8");
    		PrintWriter writer = response.getWriter();
    		writer.println("<h3>测试BeanNameViewResolver</h3>");
    	}
    }
    

      3、第三步,注入MyView,bean的名称为”testMyView”(名称是任意的); 可以注入到webApplicationContext或ApplicationContext

    /**
     * 配置视图解析器
     */
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
    	// 注册BeanNameViewResolver
    	registry.beanName();
    }
    

      4、第四步,验证,handler方法中返回”testMyView”字符串即可。

  • 相关阅读:
    svg圆弧进度条demo
    canvas圆弧、圆环进度条实现
    angularjs与pagination插件实现分页功能
    CSS布局:居中的多种实现方式
    新闻滚动demo
    移动端rem设置字体
    angularjs自定义指令通用属性详解
    浅谈angularjs绑定富文本出现的小问题
    jquery.validate使用攻略(表单校验)
    Typescript 享元模式(Flyweight)
  • 原文地址:https://www.cnblogs.com/rain144576/p/12903052.html
Copyright © 2020-2023  润新知