controller控制jsp弹窗_Spring Boot 09 Spring Boot&Apache Tiles&JSP集成

9.1 什么是Apache Tiles?

Apache Tiles是一个JavaEE应用的页面布局框架。Tiles框架提供了一种模板机制,可以为某一类页面定义一个通用的模板,该模板定义了页面的整体布局。布局由可以复用的多个块组成,每个页面可以有选择性的重新定义块而达到组件的复用。

Tiles最先作为Apache Struts框架的一个组件,后来被独立为Apache的一个独立项目。

特点

1,模板机制的页面布局功能

2,灵活的布局重构机制。使用模板的页面,可以直接在JSP里使用Tiles提供的标签重新定义块元素,也可以使用类似tiles.xml等配置文件定义。

3,易于与Struts,Shale,JSF等框架集成 。

ced111e2b853bb0fc5d59a99bc5c9d2e.png

9.2 实例目标

在本文中,我将向您展示如何创建Spring Boot应用程序,如何 使用JSP设计界面组件 以及如何使用 Apache Tiles 将界面组件放在一起以形成一个完整的站点。

9.3 创建Spring Boot项目

输入:

  • Name: SpringBootJspTiles
  • Group:me.laocat
  • Artifact: SpringBootJspTiles
  • Description: Spring Boot + Apache Tiles + JSP
  • Package: me.laocat.tiles

SpringBootJspTilesApplication.java

package me.laocat.tiles;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class SpringBootTilesApplication {public static void main(String[] args) {SpringApplication.run(SpringBootTilesApplication.class, args);}}

9.4 配置pom.xml

在pom.xml文件中声明jsp/servlet和apache Tiles所需的库。

JSP/Servlet + Tiles

org.apache.tomcat.embed    tomcat-embed-jasperjavax.servlet    jstlorg.apache.tiles    tiles-api    3.0.8org.apache.tiles    tiles-core    3.0.8org.apache.tiles    tiles-servlet    3.0.8org.apache.tiles    tiles-jsp    3.0.8org.apache.tiles    tiles-request-api    1.0.6

pom.xml文件 的完整内容 :

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework.bootspring-boot-starter-parent2.1.3.RELEASEme.laocatSpringBootTiles0.0.1-SNAPSHOTSpringBootTilesSpring Boot and Apache Tiles1.8org.springframework.bootspring-boot-starter-thymeleaforg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestorg.apache.tomcat.embedtomcat-embed-jasperjavax.servletjstlorg.apache.tilestiles-api3.0.8org.apache.tilestiles-core3.0.8org.apache.tilestiles-servlet3.0.8org.apache.tilestiles-jsp3.0.8org.apache.tilestiles-request-api1.0.6org.springframework.bootspring-boot-maven-plugin

9.5 配置Tiles View解析器

c700de6862fa7b4fd7bfacd5c8439bc2.png

TilesConfig.java

package me.laocat.tiles.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.ViewResolver;import org.springframework.web.servlet.view.UrlBasedViewResolver;import org.springframework.web.servlet.view.tiles3.TilesConfigurer;import org.springframework.web.servlet.view.tiles3.TilesView;@Configurationpublic class TilesConfig {@Bean(name = "viewResolver")    public ViewResolver getViewResolver() {        UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();         // TilesView 3        viewResolver.setViewClass(TilesView.class);         return viewResolver;    }     @Bean(name = "tilesConfigurer")    public TilesConfigurer getTilesConfigurer() {        TilesConfigurer tilesConfigurer = new TilesConfigurer();         // TilesView 3        tilesConfigurer.setDefinitions("/WEB-INF/tiles.xml");         return tilesConfigurer;    }}

9.6 Tiles定义和布局

f3455bbb40af2f6dbc566f39bc59c8b1.png

tiles.xml文件是您在应用程序中定义页面并声明每个页面的组件的地方。

tiles.xml

<?xml version="1.0" encoding="UTF-8"?>          

classic.jsp文件用于放置要在界面上显示的组件,例如,以下插图:

11ae04853e2761cd5661f2582b02bf5d.png

classic.jsp

9.7 JSP片段

/WEB-INF/basefragments/menu.jsp

菜单
首页 联系我们

/WEB-INF/basefragments/header.jsp

页头

我的网站

搜索

/WEB-INF/basefragments/footer.jsp

网页底部
@Copyright laocat.me

/WEB-INF/bodyfragments/home.jsp

首页

欢迎访问

这是网页首页

/WEB-INF/bodyfragments/contactus.jsp

联系我们联系我们:  laocat.me
地址: ${address}
电话: ${phone}
邮件: ${email}

9.8 控制器

WebController.java

package me.laocat.tiles.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controllerpublic class WebController {    @RequestMapping(value = { "/", "/home" }, method = RequestMethod.GET)    public String homePage(Model model) {        return "homePage";    }          @RequestMapping(value = { "/contactus" }, method = RequestMethod.GET)    public String contactusPage(Model model) {        model.addAttribute("address", "Vietnam");        model.addAttribute("phone", "...");        model.addAttribute("email", "...");        return "contactusPage";    }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值