[mybatis xml中单引号怎么转义实例]1、在xml的sql语句中,不能直接用大于号、小于号要用转义字符 如果用小于号会报错误如下: org.apache.ibatis.builder.BuilderException: Error creating document instance. C...+阅读
1. 模板+数据模型=输出2. 数据模型a) 类似目录的变量称为hashes,包含保存下级变量的唯一的查询名字,充当其它对象的容器,每个都关联唯一的查询名字b) 类似文件的变量称为scalars,保存单值,有两种类型i. 字符串:用引号括起,单引号or双引号ii. 数字:不用引号iii. 日期:可以是日期,时间或日期-时间iv. 布尔值:true或false,通常在标记中使用v. 对scalars的访问从root开始,各部分用”.”分隔,如 animals.mouse.pricec) 另外一种变量是sequences,和hashes类似,充当其它对象的容器,按次序访问,只是不使用变量名字,而使用数字索引,如animals[0].name,索引值从0开始d) 通常每个变量具有上述的一种能力,但一个变量可以具有多种上述能力e) 方法i. ${avg(3,5,20)} ${avg(student.zhangyaang.age,student.situ.age)}f) 宏和变换器:用户自定义的指令(FTL标记)g) 节点:树形结构中的一个节点,常用于xml处理中3. 模板a) 文本:直接输出b) ${…}:称为interpolations,FreeMarker会在输出时用实际值代替,或#{},只用于文本中c) FTL标记:类似于HTML,为了与HTML区分,用#开始,有的以开始,不会输出,区分大小写,FTL标记不能位于另一个FTL标记内部d) 注释:,不会输出e) 多余的空白字符会在模板输出时移除f) 指令i. 使用FTL标记引用指令,有三种FTL标记1. 开始标记:2. 结束标记:3. 空内容指令标记:ii. 有两种类型的指令:预定义指令和用户定义指令,用户定义指令要用替换#iii. FTL标记不能够交叉,应该正确嵌套iv. 如果使用不存在的指令,FreeMarker会产生错误消息v.和>=可以使用括号来避免这种情况, 如y)>f) e)的一种替代方法, 使用lt, lte, gt 和gte来替代6. 逻辑操作符a) &(and), ||(or), !(not), 只能用于布尔值…woman7. 内建函数a) 内建函数的用法类似访问散列的子变量, 只是用”?”|替代”,”b) 用于字符串i. html: 对字符串进行html编码ii. cap_first: 将字符串转换成第一个字母大写iii. lower_ca...
怎么在freemarker中使用递归
一、在页面编写要显示的FreeMarker标签 例如:我要显示类似于树型的结构如: 1.root 2.child 3.child 4.root 5.child 6.child 结合hibrenate的方法,就是假如有一个分类表,一个分类下又有子分类,注意分类是可以无限的扩展的,在数据库表的设计中我们把分类表的关联设计为自关联即自己关联自己 然后我们要在数据库中找出所有的根分类(root),在显示页面编写以下代码:这里定义一个变量是用来记数显示编号的这里表示要显示的内容${n}${root.id}//判断是否有子分类//如果有子分类就把子分类的set集合赋值给root,root是一个在if语句块中定义的一个变量//filename.ftl是一个自己定义的一个模板文件,注意该文件是存放在跟当前页面文件同在一个目录下的.表示当前目录下以及所有父目录下的文件因为利用了hibranate关联性所有每一个分类都有对应的一个关联它的子分类的set集合二、最后定义模板文件(ftl)filename.ftl如下:这里表示要显示的内容${n}${root.id}其实这个文件的内容是跟以上定义的FreeMarker标签是一样的 ok 这样搞定了! ...
springmvc整合freemarker怎么弄
一、 用macro实现自定义指令,例如: 自定义指令可以使用macro指令来定义。Hello ${person}!macro指令自身不打印任何内容,它只是用来创建宏变量,所以就会有一个名为greet的变量。 使用这个宏:会打印出: Hello Fred!
二、用java代码标签实现自定义指令: 可以使用TemplateDirectiveModel接口在Java代码中实现自定义指令。 简单示例如下:
1、实现TemplateDirectiveModel接口。
public class UpperDirective implements TemplateDirectiveModel { public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException { if (!params.isEmpty()) { throw new TemplateModelException( "parameters 此处没有值!"); } if (loopVars.length != 0) { throw new TemplateModelException( " variables 此处没有值!"); } if (body != null) { //执行nested body 与FTL中类似。
body.render(new UpperCaseFilterWriter(env.getOut())); } else { throw new RuntimeException("missing body"); } } private static class UpperCaseFilterWriter extends Writer { private final Writer out; UpperCaseFilterWriter (Writer out) { this.out = out; } public void write(char[] cbuf, int off, int len) throws IOException { char[] transformedCbuf = new char[len]; for (int i = 0; i
2、注入FreeMarkerConfigurer的freemarkerVariables中。 例如:在jeecms-servlet-front.xml说明: FreeMarkerConfigurer. 、setFreemarkerVariables(Mapvariables) 底层调用了FreeMarker的Configuration.setAllSharedVariables()方法。 因为更好的实践是将常用的指令作为共享变量放到Configuration中。
3、调用自定义指令: [upper] bar [#list ["red", "green", "blue"] as color] ${color} [/#list] baaz [/upper]
4、显示输出结果: BAR RED GREEN BLUE BAAZ
如何用FreeMarker生成静态页面
Name=renyibing&pointid=4863
一、 FreeMarker生成静态页原理众所周知,FreeMarker适合于作为Web应用的表现层,那么我们就把把页面中所需要的样式放入FreeMarker文件中,然后将页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成。了解了上面的原理,接下来四夕就一步步带您实现FreeMarker生成静态页面。
二、 创建FreeMarker模板文件user.ftl。 user.ftl ${user.userName} ${user.userPassword}
三、 创建FreeMarker模板文件解析器类FreeMarkertUtilFreeMarkertUtil.java//省略包的导入 Public class FreeMarkerUtil{ //templatePath模板文件存放路径 //templateName 模板文件名称 //filename 生成的文件名称 public static void analysisTemplate(String templatePath,String templateName,String fileName,Maproot){ try { Configuration config=new Configuration(); //设置要解析的模板所在的目录,并加载模板文件 config.setDirectoryForTemplateLoading(new File(templatePath)); //设置包装器,并将对象包装为数据模型 config.setObjectWrapper(new DefaultObjectWrapper()); //获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致 //否则会出现乱码 Template template=config.getTemplate(templateName,“UTF-8”); //合并数据模型与模板 FileOutputStream fos = new FileOutputStream(fileName); Writer out = new OutputStreamWriter(fos,“UTF-8”); template.process(root, out); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); }catch (TemplateException e) { e.printStackTrace(); } } }
四、 创建FreeMarker模板文件动态绑定的数据对象类User.javaUser.java//..省略包的导入 public class User{ private String userName; private String userPassword; …省略getter()与setter方法 }
五、 创建FreeMarker生成静态页面测试类ClientTest.java//..省略包的导入 public class ClientTest{ public static void main(String[] args){ User user=new User(); user.setUserName("张三"); user.setUserPassword("123"); Map root=new HashMap(); root.put("user", user); String templatesPath="D:/DevPlateForm/Eclipse/workspaces/freeMakerTest/src/templates"; String templateFile="/user.ftl"; String htmlFile=templatesPath+"/user.html"; FreeMarkertUtil.analysisTemplate(templatesPath,templateFile,htmlFile,root); } } 注意: templatesPath为我机器上的FreeMarker模板文件存放路径。如果您要是测试的话,可以将此改为您创建的模板文件存放路径。好了,所有的工作都已经完成了,我们可以运行ClientTest类来测试了。本例在您的工程中运行时,必须导入freemarker.jar文件,否则不能编译。在我的工程中,您可以找到对应的文件。
以下为关联文档:
腾讯电脑管家里的wifi共享精灵的使用1。点击工具箱按钮以后,点击上面的wifi共享精灵,会进行软件的下载 2.下载以后,会直接打开这个wifi的,会看到界面,点击启动按钮 3.启动成功以后,上面显示成功,并且会看到信号的一...
excel里怎么录制宏怎么使用宏。。具体点。。万分感谢。03版的话相应的录制和执行宏的选项都在:工具——宏 下边。 如果你想使用宏的话就要先录制一个宏,也就是将相应的操作记录下来,以便以后再遇到相同的操作时可以通过宏来自动执行...
excel函数if多条件判断判断条件已经设置双引号了啊求教我哪个地Excel的IF函数判断中文条件时文字上加双引号即可。Excel的IF函数:IF函数一般是指Excel中的IF函数,根据指定的条件来判断其“真”(TRUE)、“假”(FALSE),根据逻辑计算的真假值,从而返...
wps怎么使用使用教程我们打开WPS表格工具,跟excel不同,它的选项卡是全部展开的,我们可以直接看到选项卡下面的各种工具,方便我们就行操作。首先我们来看看“开始”选项卡,这里面有剪贴板,字体,对齐方法...
怎么使用蓝牙耳机听天语v9手机里的歌我用的就是V9,测试一下,没有问题。 测试方法如下:先连接蓝牙耳机,在蓝牙耳机设置中,勾选手机音频和媒体音频,然后用自带的音乐播放器播放MP3的音乐,然后后台运行,这时给V9拨打电话,接...
狼牙套怎么正确使用一次使用还是多次使用好呢狼牙套整体的设计和避孕套是一样的,是一种软胶表面带有凸起点的避孕套,但是在厚度和外表上增加了套上乳胶制品的刺,使用的功效和避孕套有着很大的差别。 狼牙套与人们常用的避...
怎样在word里使用大纲级别创建目录除了应用标题样式外,对标题指定大纲级别同样能快速地创建目录。步骤如下: 1.执行“视图”→“工具栏”→“大纲”,显示“大纲”工具栏。 2.将插入点置于要在目录中显示的第一个...
微信端京东购物怎么使用账户里的京东E卡现在你有一张京东e卡。 那么打开京东主页。点击上方登录,没有的话那就选择免费注册,这个步骤,你懂得! 登录你的账号以后,点击"我的订知单";在右侧“账户信息”中找到“京东卡道/E卡...
游园不值里的引号的用法游园不值 朝代:南宋·叶绍翁 应怜屐齿印苍苔,小扣柴扉久不开。 春色满园关不住,一枝红杏出墙来。 【作者背景】 叶绍翁(生卒年不详),南宋诗人。字嗣宗,祖籍建安(今福建建瓯)。原姓李,...