自定义视图

本文介绍如何在Spring MVC中自定义视图,包括创建实现View接口的类、配置视图解析器及在Controller中使用自定义视图的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a、如何实现

1、自定义一个实现View接口的类,添加@Component注解,将其放入SpringIOC容器,如下所示:

package com.jd.view;

 

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 // 将自定义视图放入IOC容器中

public class ToView implements View{

   

    public String getContentType() {

         return "text/html";

    }

   

    public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response)

             throws Exception {

         response.getWriter().print("Hello World.");

    }

2、配置视图解析器,使用视图名字解析视图,如下所示:

<!-- 配置BeanName视图解析器:使用视图名字解析视图 -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
	<!-- order属性用于设定视图解析器的优先级,order值越小优先级越高,InternalResourceViewResolver优先级为Integer所能表示的最大值 -->
	<property name="order" value="0"></property>
</bean>

3Controller定义Handler方法,该方法返回自定义视图的名字(默认情况下为首字母小写的类名),如下所示:

package com.jd.userinfo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/userinfo")
public class UserInfoController {
     
	@RequestMapping("/toView.do")
	public String toView() {
		System.out.println("Handler Methods");
		return "toView";// toView是自定义视图类ToView在IOC容器中默认的名字
	}
}

b、运行原理

发布Java Web项目—>执行DispatcherServletonRefresh(ApplicationContext context)方法—>执行DispatcherServletinitStrategies(ApplicationContext context)方法—>执行DispatcherServletinitViewResolvers(ApplicationContext context)方法,该方法实例化Spring配置文件中配置的ViewResolver并将其赋值给viewResolvers成员变量—>执行resolveViewName方法 return context.getBean(viewName, View.class);根据视图名直接从IOC容器中获取视图对象—>render方法到达请求页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值