Velocity 模板如何显示 $! , ${} 等特殊符号

本文探讨了在Velocity模板中如何正确显示特殊字符和符号,如$!{obj}

因为使用到了 Velocity 模板,有时候需要显示 $!{obj} 这样的内容。

其实也就是 在页面直接显示 $!{obj} , 而不是显示 obj 内容.

//如果$foo未定义过
$foo 输出:$foo
\$foo 输出:\$foo
\\$foo 输出:\\$foo
\\\$foo 输出:\\\$foo

//如果$foo已经定义过
#set($foo="bar")
$foo 输出:bar
\$foo 输出:$foo
\\$foo  输出:\bar
\\\$foo 输出:\$foo    

参考地址: http://www.51gjie.com/javaweb/899.html

 

然后我就是 尝试了一下 : content="$\!webPath"

生成的内容就是  content="$!webPath" 了,

在 $ 前加 \ 即可,

 

但是有些 特殊情况,或者特殊符号,就可能很难搞了,去百度啊,什么的太难找了。

而且 文档资料太少了。不过我们有终极大招

 

终极处理显示特殊符号

#set($websiteCss1="$!{")
#set($websiteCss2="config.websiteCss}")

$websiteCss1$websiteCss2

 

这样子生成的模板就会显示 : $!{config.websiteCss}

这样子了,其他特殊符号,都是可以采用这样的拼接字符串的笨方式的,貌似也不算效率低吧

 

某些特殊符号不能显示出来

比如说 ,  #*    *# 

这样的注释 符号, 

#set($websiteCss1="#*")

结果生成的模板文件, 居然是 原样的: 

#set($websiteCss1="#*")

根本不能自定义属性内容是  #*  或者 *# 或者  . 逗号, 或者  $!   ,  $ 这样的符号。。。

 

而且 建议使用 ${obj} 这样的写法,而不是 $obj ,总之带上 {} 会更加规范,这样生成的内容出现的问题也就会越少。

 

 

如果给我选择,我不会选择这个模板,使用  freemarker 就会好很多,  而且 模板出错了,提示也会更加的友好。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


        

转载于:https://my.oschina.net/ouminzy/blog/1837890

##导入宏定义 $!{define.vm} ##保存文件(宏定义) #save("/entity", ".java") ##包路径(宏定义) #setPackageSuffix("entity") ##自动导入包(全局变量) $!{autoImport.vm} import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; ##表注释(宏定义) #tableComment("表实体类") @Data @EqualsAndHashCode(callSuper = false) @TableName("$!{tool.hump2Underline($!{tableInfo.name})}") @ApiModel(value = "$!{tableInfo.name}", description = "$tableInfo.comment") public class $!{tableInfo.name} extends Model<$!{tableInfo.name}> implements Serializable{ private static final long serialVersionUID = $!tool.serial(); #foreach($column in $tableInfo.pkColumn) #if(${column.comment}&& !${column.comment}.trim().isEmpty()) /** * ${column.comment} */#end #else /** * 默认提示: 属性无描述信息 */ #end @ApiModelProperty(value = "${column.comment}",type = IdType.ASSIGN_UUID) @Tableld(value="$!{tool.hump2Underline($!{column.name})}",type=4) private $!{tool.getClsNameByFullName($column.type)} $!{column.name}; #end #foreach($column in $tableInfo.otherColumn) #if(${column.comment}&& !${column.comment}.trim().isEmpty()) /** * ${column.comment} */#end #else /** * 默认提示: 属性无描述信息 */ @ApiModelProperty(value = "${column.comment}") @TableField(value="$!{tool.hump2Underline($!{column.name})}") private $!{tool.getClsNameByFullName($column.type)} $!{column.name}; #end #foreach($column in $tableInfo.pkColumn) /** * 获取主键值 * * @return 主键值 */ @Override public Serializable pkVal() { return this.$!column.name; } #break #end } 报错org.apache.velocity.exception.ParseErrorException: Lexical error, Encountered: "t" (116), after : "." at *unset*[line 65, column 48]
最新发布
05-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值