zoukankan      html  css  js  c++  java
  • 后端——框架——视图层框架——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”字符串即可。

  • 相关阅读:
    vector::reserve()对迭代器的影响
    C#日期格式转换大全
    aa
    C#中取到当前日期是在一年中的第几周
    EasyUI
    使用Ajax传递 json数据,并在一般处理页面进行接收全过程
    C#操作海量数据(Oracle、SQL Server)
    UE4教程
    游戏引擎的原理及应用
    C++基础02 (数组、函数、指针、结构体)
  • 原文地址:https://www.cnblogs.com/rain144576/p/12903052.html
Copyright © 2011-2022 走看看