SpringMVC教程之如何自定义一个视图

一、前言

SpringMVC自定义一个视图,实现的基本步骤:

  • 编写自定义view
  • 进行springmvc配置文件的配置
  • 实现到目标方法的链接
  • 在控制层添加目标方法

二、案例

♦自定义HelloView

@Component
public class HelloView implements View{

	@Override 
	public String getContentType() {
		return "text/html";
	}

	@Override
	public void render(Map<String, ?> model, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		response.getWriter().print("hellow,view Time"+new Date());
	}
	
}

注意:我们定义的视图类要加上注解@Component,这样spring容器才会帮我们创建这个视图的实例。

♦在springmvc配置文件中加入以下配置

<!-- 配置视图  BeanNameViewResolver 解析器: 使用视图的名字来解析视图 -->
<!-- 通过 order 属性来定义视图解析器的优先级, order 值越小优先级越高 -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
        <property name="order" value="100"></property>
</bean>

上方配置中,有个property为order值得注意。值越小优先级越高。当我们在目标方法中return一个视图的时候,会先通过优先级高的视图解析器来解析,如果搞不定,再由优先级低的视图解析器去解析。
我们想要我们自定义的视图解析器起作用,就必须让这个视图解析器优先级比InternalResourceViewResolver这个视图解析器高,InternalResourceViewResolver的order默认是Integer.MAX_VALUE

♦在控制层添加目标方法

@RequestMapping("/testView")
public String testView(){
        return "helloView";
}

代码解析: 这里我们 return "helloView"; 视图解析器就会去找相应的视图。我们自定义的视图是HelloView,spring容器帮我们实例对象的时候,首字母会小写,即 HelloView helloView = new HelloView();
运行测试页面如下:
SpringMVC教程之如何自定义一个视图的照片 - 1
整个运行流程如下:

  • 用户访问/testView这个目标方法,该方法返回”helloView”这个视图
  • BeanNameViewResolver视图解析器优先级比较高,解析helloView,并且解析成功。
  • 自定义视图HelloView中的render方法被调用
  • 用户得到视图

至此,我们关于SpringMVC教程之如何自定义一个视图介绍完毕。想要了解更多关于SpringMVC开发的教程,请参考http://www.marsitman.com/springmvc
博客地址:http://www.marsitman.com/springmvc/springmvc-custom-view.html
版权声明:本文为博主原创文章,允许转载,但转载必须标明出处。

 

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!



点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注