自定义视图和自定义视图解析器
2020-05-03 16:03:21来源:博客园 阅读 ()
自定义视图和自定义视图解析器
有的时候 SpringMVC 框架提供的视图解析器不能满足我们的需求,这时候我们可以来自定义视图以及视图解析器来完成定制的功能。
主要分为以下三步:
- 编写自定义视图实现类
- 编写视图解析器
- 在配置文件中将自定义的视图解析器注入ioc容器中
1、编写自定义视图实现类:
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.View;
// 实现 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 {
// 编写渲染视图页面的业务逻辑
// 可以在这里取得 model 中保存的数据
// 可以使用 request 和 response 进行请求和响应
}
}
2、编写视图解析器:
import java.util.Locale;
import org.springframework.core.Ordered;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
// 实现 ViewResolver 接口来让框架知道这是一个视图解析器,实现 Ordered 接口来进行排序
public class MyViewResolver implements ViewResolver, Ordered {
// 视图解析器的遍历顺序
private Integer order;
@Override
public int getOrder() {
return order;
}
// 设置视图解析器的遍历顺序
public void setOrder(Integer order) {
this.order = order;
}
@Override
public View resolveViewName(String viewName, Locale locale) throws Exception {
// 进行视图解析器的业务逻辑,返回视图对象则进行渲染,若返回 null 则继续遍历下一个视图解析器
if (viewName.startsWith("myView:")) {
return new MyView();
}
return null;
}
}
3、在配置文件中将自定义的视图解析器注入ioc容器中:
<bean class="com.pudding.view.MyViewResolver">
// order的值越小优先级越高,InternalResourceViewResolver 的 order 值为 Integer 的最大值。
<property name="order" value="1"></property>
</bean>
原文链接:https://www.cnblogs.com/lemon-coke-pudding/p/12824003.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JVM常见面试题解析 2020-06-11
- 深入解析ThreadLocal和ThreadLocalMap 2020-06-08
- dockerMesos配置项是怎么解析的?案例详解 2020-06-02
- 最新115道经典Java面试题及答案解析,快来看看你掌握了多少 2020-06-01
- JAVA自定义注解 2020-06-01
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash