- 浏览: 564544 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
bo_hai:
快速排序:https://bo-hai.iteye.com/b ...
插入排序、选择排序、冒泡排序 简单实例 -
bo_hai:
参考:https://bo-hai.iteye.com/blo ...
插入排序、选择排序、冒泡排序 简单实例 -
bo_hai:
JDK1.8后,解决问题的办法就简单啦:List<Int ...
List 中去除 null 方法讨论 -
bo_hai:
上述两种办法都不是最好的单例模式。
安全发布单例模式 -
bo_hai:
我来评论一下。
MySql 删除重复数据的方法
前言:
1)在实际的工程中,可能存在FTL要引入相同的js或css的代码,每个页面手动copy引入js或css的代码很是麻烦。现在为大家介绍在FTl中定义模板的方法。所谓模板是指:可以指定所有的FTL页面自动加载某些代码工具。
2)在引入模板前,先要引入模板用到jar。jar的名称分别是:sitemesh-2.2.1.jar 和 struts2-sitemesh-plugin-2.0.11.2.jar。在实际的项目中,可以根据struts2的版本,现在对应jar的版本。
3)修改web.xml文件,加入以下内容:
<filter> <filter-name>sitemesh</filter-name> <filter-class>org.apache.struts2.sitemesh.FreeMarkerPageFilter</filter-class> </filter> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>*.action</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
注:filter-mapping的配置应和struts2对应的filter-mapping的配置相同;
4)在 WEB-INF目录下面创建文件:sitemesh.xml。内容如下:
<sitemesh> <property name="decorators-file" value="/WEB-INF/decorators.xml" /> <excludes file="${decorators-file}" /> <page-parsers> <parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.FastPageParser" /> </page-parsers> <decorator-mappers> <mapper class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper"> <param name="property.1" value="meta.decorator" /> <param name="property.2" value="decorator" /> </mapper> <mapper class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper"> </mapper> <mapper class="com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper"> <param name="match.MSIE" value="ie" /> <param name="match.Mozilla [" value="ns" /> <param name="match.Opera" value="opera" /> <param name="match.Lynx" value="lynx" /> </mapper> <mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper"> <param name="decorator" value="printable" /> <param name="parameter.name" value="printable" /> <param name="parameter.value" value="true" /> </mapper> <mapper class="com.opensymphony.module.sitemesh.mapper.RobotDecoratorMapper"> <param name="decorator" value="robot" /> </mapper> <mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper"> <param name="decorator.parameter" value="decorator" /> <param name="parameter.name" value="confirm" /> <param name="parameter.value" value="true" /> </mapper> <mapper class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper"> </mapper> <mapper class="org.apache.struts2.sitemesh.NoneDecoratorMapper"> </mapper> <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper"> <param name="config" value="${decorators-file}" /> </mapper> </decorator-mappers> </sitemesh>
5)在 WEB-INF目录下面创建文件:decorators.xml。内容如下:
<?xml version="1.0" encoding="utf-8"?> <decorators defaultdir="/WEB-INF/decorators"> <!-- Any urls that are excluded will never be decorated by Sitemesh --> <excludes> <pattern>/js/*</pattern> <pattern>/css/*</pattern> <pattern>/images/*</pattern> </excludes> <decorator name="main" page="/module/common/decorator/main.dec"> <pattern>/*</pattern> </decorator> </decorators>
注:page="/module/common/decorator/main.dec" 这个的值。其意是:在WEB-INF目录有 "/module/common/decorator 目录,并在其目录下有main.dec的文件。
6)main.dec 文件的内容是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>FTL模板示例 - ${title}</title> <style type="text/css"> <!-- body { margin-left: 5px; margin-right: 5px; } --> </style> <script type="text/javascript" src="${base}/js/lib/jquery/jquery-1.4.2.js"></script> <script type="text/javascript" src="${base}/js/lib/jquery/jquery.validate.js"></script> <script type="text/javascript" src="${base}/js/lib/jquery/jquery.form.js"></script> ${head} </head> <body> <link rel="shortcut icon" href="http://localhost/qq.ico"/> ${body} </body> </html>
注:main.dec 是模板定义文件,模板中定义要自动加载的js和css代码。在这里,我定义人的每个ftl页面自动加载jquery的js文件。文件中还有三个自定义参数。这是将目标页面的对应内容加载到模板中显示。
7)自定义一个view.ftl页面,内容如下:
<html> <head> <title>自动跳转到ftl页面</title> </head> <body> 这是ftl页面呀~~ </body> </html>
8)能通action跳转到view.ftl页面,解析后的html如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>FTL模板示例 - 自动跳转到ftl页面</title> <style type="text/css"> <!-- body { margin-left: 5px; margin-right: 5px; } --> </style> <script type="text/javascript" src="/js/lib/jquery/jquery-1.4.2.js"></script> <script type="text/javascript" src="/js/lib/jquery/jquery.validate.js"></script> <script type="text/javascript" src="/js/lib/jquery/jquery.form.js"></script> </head> <body> <link rel="shortcut icon" href="http://localhost/qq.ico"/> 这是ftl页面呀~~ </body> </html>
9)目标页面在加载解析时,自动加载了模板中定义的js文件。止此配置成功。
发表评论
-
nginx 配置 CORS 支持跨域访问
2014-11-11 20:26 11604CSS代码设置了一些字体,如果跨域访问这些字体,就会加载失败 ... -
lockInterruptibly 和lock的区别
2014-09-03 11:04 3270这是个被无数人写过并还会被其他人继续写下去的blog。 代 ... -
Spring MVC 的单元测试实例
2014-08-15 16:48 882一、先定义实例: public class BaseTes ... -
HTTPClient 简单使用
2014-08-15 13:47 1102HttpClient 的用模拟http请求的工具,一般用在 ... -
tomcat 配置虚拟主机实例
2014-07-29 14:20 1512一、先来解释一下虚拟主机的概念:在一个tomcat上放多个工 ... -
Eclipse3.6 安装EGit
2014-07-08 21:56 591Eclipse3.6 安装EGit地址是 http://do ... -
ThreadPoolExecutor 中饱和策略分析
2014-07-03 15:25 2270import java.util.concurrent.Ti ... -
FutureTask 实例
2014-06-29 10:56 655先来总结一下FutureTask使用场景: 如果不想分支线 ... -
ReadWriteLock 使用实例
2014-06-28 20:21 878首先来讨论ReadWriteLock 类的使用场景,记住一句 ... -
安全发布单例模式
2014-06-27 17:24 6851、最简单的方法: public class Singl ... -
JAVA notifyAll wait 实例
2014-06-27 13:55 526两个线程,分别有两数据结构:1到10的数据和A到E的字符。 ... -
获取机器CPU数量的方法
2014-06-22 15:58 631public class CPUNum { /** ... -
动态代理的实现
2014-06-17 21:26 504public interface IHelloWorld ... -
线程同步优化实例
2014-06-11 17:56 539代码如下: package com.bohai.thre ... -
JavaScript 遍历JSON 获取key value
2014-04-30 16:20 621if (!$.isEmptyObject(subProdIn ... -
计算器算法(支持加减乘除括号)
2014-04-19 17:53 5621import java.util.ArrayList; i ... -
实用工具类 && CollectionUtils
2014-04-19 13:53 7874import java.util.ArrayList; ... -
解决fatal: unable to connect to github.com问题
2014-04-08 16:43 2213问题: 在使用Aptana Studio3 ... -
JAVA多线程 Semaphore 应用
2014-01-24 16:04 533import java.util.concurrent.Ex ... -
JAVA多线程 Exchanger 应用
2014-01-24 15:42 693import java.util.concurrent.Ex ...
相关推荐
- 在修改模板后,需要运行代码生成器并指定自定义模板的路径,以确保使用到的是自定义模板。 总的来说,自定义Mybatis-Plus模板是一个灵活且强大的特性,它允许开发者根据项目需求定制代码生成规则,提高开发效率,...
- 配置生成器:在配置文件(如generatorConfig.xml)中指定自定义模板的位置,使代码生成器使用新的模板进行生成。 2. **常用模板及作用**: - `Entity.java.ftl`:定义实体类的模板,包括字段、getter/setter...
在线自定义模板的使用在现代企业信息化建设中扮演着重要角色,特别是在JEECG这样的快速开发框架中。本文将深入探讨如何利用模板...在JEECG框架的支持下,这种自定义模板的使用方法为企业信息化建设提供了强大的工具。
### 关于Eclipse中FTL模板的技巧设置方法 #### 概述 FreeMarker Template Language (FTL) 是一种用于生成文本输出的模板语言。它广泛应用于Java Web开发中,帮助开发者快速构建动态网页。然而,对于开发者而言,...
本文将详细讲解如何利用MyBatis的代码生成器(Generator)进行自定义模板生成代码,以便提高开发效率并降低出错概率。 首先,我们需要了解MyBatis Generator(MBG)的基本概念。MBG是一个可以生成Java源代码和XML...
支持生成DAO,PO,和sql语句的xml文件。
在本篇中,我们将深入探讨EditPlus如何与XML和FTL(FreeMarker)文件格式配合使用,并讨论如何配置EditPlus以提升这两种文件类型的编辑体验。 **XML格式化工具** XML(可扩展标记语言)是一种用于存储和传输数据的...
使用这样的专业编辑器,开发者可以更专注于FTL模板的设计和XML数据的处理,而不必担心基础的编辑和管理问题。在Java Web开发中,熟练掌握FTL编辑器能大大提高工作效率,确保项目模板的稳定性和可维护性。
- **描述**: 提供了关于Freemarker的一些基本介绍,并且提到了如何在Freemarker模板语言(FTL)中调用自定义的方法。 ### 二、Freemarker自定义方法实现原理 Freemarker 是一个基于 Java 的模板引擎,用于生成文本...
若需自定义格式,可以使用 FreeMarker 的 `number` 模板语言指令,如 `${number.format('#.###', myDouble)}`。 4. **空值处理**: 如果变量 `value` 为空,尝试访问它会抛出异常。为了避免这种情况,可以使用条件...
在给定的压缩包文件中,我们可以看到几个关键的FTL(FreeMarker Template Language)文件,它们是代码生成器的前台页面模板,包括Browse.ftl、EditPage.ftl、AddPage.ftl和Detail.ftl。 1. **Browse.ftl**:这个...
在`configTemplate()`方法中,我们可以添加自定义的模板路径,以便在代码生成过程中使用。 在配置策略`configStrategy()`时,可以指定实体类名、数据库字段映射规则等,确保生成的代码符合项目规范。同时,通过调整...
通过上述内容,我们了解了Freemarker自定义标签的基本概念、创建与使用方法,以及如何在实际项目中发挥作用。自定义标签极大地增强了Freemarker的灵活性,使得模板语言可以更好地适应各种应用场景。在阅读...
6. **模板与数据合并**:使用FreeMarker的`Template`类加载模板文件,然后用`process`方法将数据模型应用到模板上,生成最终的Word文档。 7. **POM.xml**:在Maven项目中,`pom.xml`文件是项目的配置文件,用于定义...
使用MBG自定义模板的步骤大致如下: 1. 创建模板文件:如`JavaModelGenerator.ftl`、`SqlMapGenerator.ftl`和`MapperGenerator.ftl`,分别对应实体类、XML映射文件和Mapper接口的生成。 2. 设计模板内容:根据项目...
然而,PDFBox并不直接支持模板机制,所以通常需要配合其他工具或自定义逻辑来实现动态生成。 三、 Flying Saucer & Thymeleaf 为了根据模板动态生成PDF,我们可以结合Flying Saucer和Thymeleaf。Flying Saucer是一...
项目的灵活性体现在自定义模板上,开发者可以根据项目需求定制模板文件,改变生成的代码结构或内容。例如,可以调整Mapper接口的方法签名,或者改变Controller中的HTTP方法类型。 6. **集成与配置**: 集成...
1. **生成HTML模板**: 使用FreeMarker (FTL) 或其他类似的模板引擎,创建一个HTML模板。FTL是一种强大的服务器端模板语言,可以动态地填充数据到预定义的HTML结构中,形成个性化的内容。 2. **数据填充**: 将动态...
以FreeMarker为例,首先创建一个FTL(FreeMarker模板语言)文件,比如`email.ftl`,包含你设计的邮件模板: ```html <!DOCTYPE html> ${subject} <h1>Hello, ${recipientName}! <p>Your order #${orderId} ...
在`common`这个压缩包文件中,可能包含了MBG自定义模板和其他辅助文件,用于帮助用户快速设置和运行MBG。解压这个包后,开发者可以参考其中的模板和配置文件,根据自己的项目需求进行修改,然后执行MBG生成代码。 ...