数据库字段是用blob存储的,用java的new String(字段名,"utf-8")的方式输出,在java端获取到的字符串值是没问题的,但是freemarker无法获得值。这个程序客户已经使用很长时间了,没出现过这个问题,第一次出现这种情况。不知道为什么java的string前端freemarker无法获得?
http://blog.csdn.net/zhibo112/article/details/50325521 试一下这种方式,你要通过IO 把blob的数据读出来在转成string
Freemarker操作字符串
1、substring(start,end)从一个字符串中截取子串
start:截取子串开始的索引,start必须大于等于0,小于等于end
end: 截取子串的长度,end必须大于等于0,小于等于字符串长度,如果省略该参数,默认为字符串长度。
例子:
${‘str’?substring(0)}à结果为str
${‘str’?substring(1)}à结果为tr
${‘str’?substring(2)}à结果为r
${‘str’?substring(3)}à结果为
${‘str’?substring(0,0)}à结果为
${‘str’?substring(0,1)}à结果为s
${‘str’?substring(0,2)}à结果为st
${‘str’?substring(0,3)}à结果为str
2、cap_first 将字符串中的第一个单词的首字母变为大写。
${‘str’?cap_first}à结果为Str
3、uncap_first将字符串中的第一个单词的首字母变为小写。
${‘Str’?cap_first}à结果为str
4、 capitalize将字符串中的所有单词的首字母变为大写
${‘str’? capitalize}à结果为STR
5、 date,time,datetime将字符串转换为日期
例如:
<#assign date1=”2009-10-12”?date(“yyyy-MM-dd”)>
<#assign date2=”9:28:20”?time(“HH:mm:ss”)>
<#assign date3=” 2009-10-12 9:28:20”?time(“HH:mm:ss”)>
${date1}à结果为2009-10-12
${date2}à结果为9:28:20
${date3}à结果为2009-10-12 9:28:20
注意:如果指定的字符串格式不正确将引发错误。