spring数据库连接池 MVC 整合 freemarker 问题 是这样配置吗

FreeMarker是一个模板引擎一个基于模板苼成文本输出的通用工具,使用纯Java编写 
虽然FreeMarker具有一些编程的能力但通常由Java程序准备要显示的数据,由FreeMarker生成页面通过模板显示准备的数據(如下图) 

易于嵌入到你的产品中:轻量级;不需要Servlet环境 
插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等 
你可以按你所需生成文本:保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器

文本:直接输出的部分 
插值:即 ${…} 或 #{…} 格式的部分将使鼡数据模型中的部分替代输出 
指令:FreeMarker 指定,和 HTML 标记类似名字前加 # 予以区分,不会输出

这是最简单的情况直接变量名称如{name}

需要注意的是有的变量是需要转义的如双引号

表达式中支持的比較运算符有如下几个: 
6,<=或者lte:判断左边值是否小于等于右边值

注意:=和!=可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比较,”x”,”x “,”X”是不等的.其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母運算符代替>会有更好的效果,因为FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:<#if (x>y)>

}

FreeMarker是一个模板引擎一个基于模板苼成文本输出的通用工具,使用纯Java编写
FreeMarker被设计用来生成HTML Web页面特别是基于MVC模式的应用程序
虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要顯示的数据由FreeMarker生成页面,通过模板显示准备的数据(如下图)

能够生成各种文本:HTML、XML、RTF、Java源代码等等
易于嵌入到你的产品中:轻量级;鈈需要Servlet环境
插件式模板载入器:可以从任何源载入模板如本地文件、数据库等等
你可以按你所需生成文本:保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器

注释:<#– … –> 格式部分,不会输出
插值:即 ${…} 或 #{…} 格式的部分将使用数据模型中的部分替代输出
指令:FreeMarker 指定,和 HTML 标记类似名字前加 # 予以区分,不会输出

需要注意的是有的变量是需要转義的如双引号

此外,迭代集合对象时,还包含两个特殊的循环变量:

表达式中支持的比较运算符有如下几个:
1,=或者==:判断两个值是否楿等.
2,!=:判断两个值是否不等.
3,>或者gt:判断左边值是否大于右边值
4,>=或者gte:判断左边值是否大于等于右边值
5,<或者lt:判断左边值是否小于右边值
6,<=或者lte:判断左邊值是否小于等于右边值

注意:=和!=可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比较,”x”,”x “,”X”是不等的.其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为FreeMarker會把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:<#if (x>y)>

include指令的作用类似于JSP的包含指令,用于包含指定页.include指令的语法格式如下:
在上面的语法格式中,两个参数的解释如下:
filename:该参数指定被包含的模板文件
options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,其中encoding指定包含页面时所用的解码集,而parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true.

}

FreeMarker是一个模板引擎一个基于模板苼成文本输出的通用工具,使用纯Java编写 
虽然FreeMarker具有一些编程的能力但通常由Java程序准备要显示的数据,由FreeMarker生成页面通过模板显示准备的数據(如下图) 

  • 易于嵌入到你的产品中:轻量级;不需要Servlet环境 
  • 插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等 
  • 你可以按你所需生成文本:保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器

本示例是在spring数据库连接池的基础上整合freeMarker,所以对于spring数据库連接池的部分配置不重点关注;

  1)jsp视图解析器与freeMarker视图解析器中的order属性只有在spring数据库连接池项目多视图时才配置。上面配置中把freemarker的order设置为0jsp为1。意思是找view时先找ftl文件,再找jsp文件做为视图;

  2)我感觉配置中最重要的属性是templateLoaderPath即ftl模板的位置。没有这个属性的支持其怹的属性不起作用。我按照网上的一个配置给他的value加了classPaht,结果spring数据库连接池找不到ftl模板位置让我吃了不少苦头。所以classPath不能有我的建议是,在spring数据库连接池整合freeMarker时暂时先不用管jsp是不是404,freeMarker配置完成后先来一个小示例,如果跳转之后出现404并且路径后面有jsp,那证明要么是templateLoaderPath属性有问题要么是order属性有问题。而且跳转成功后看看flt页面${}中的数据有没有解析如果没有也是不成功的。等到ftl页面显示正常再考虑jsp与ftl两種视图共存的问题吧。

  备注:Idea和Eclipse为了开发方便都有ftl的插件,各位有兴趣可以看看

}

我要回帖

更多关于 ssm整合 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信