eclipse Freemarker插件

原文地址:http://my249645546.iteye.com/blog/1856141

关于Freemarker,功能很强大,但好用的eclipse插件却非常少。曾经用Jboss的那个插件,居然对Freemarker的部分标签不兼容。比如${user??}编辑器居然报错!后来发现了另一款插件:

hudson.freemarker_ide_0.9.14

这也是我目前正在使用的一款插件,个人感觉还不错,关键字高亮显示了,代码提示也有了。只是这玩意儿在代码提示上很不智能。比如:

1、在一个ftl文件中使用java对象时,不能提示出这个对象的属性。如${user.name}。输入user.后不会将name进行补全

2、在一个ftl文件中定义一个macro,另一个文件中使用这个macro时,鼠标移上去,按住ctrl键不能直接定位带该macro定义的地方。这导致,实际开发中要找某个macro的代码非常麻烦,还得动用eclipse的搜索功能!

 

今天本来想对这个插件进行二次开发,查看其源代码时,居然发现其对上述功能是支持的,只是需要配置!

于是到网上找了一大圈,终于搞定了,现分享给大家。

 

在项目根目录新建一个.freemarker-ide.xml(注意文件名前面有一个".",并与.project在同一目录)。代码如下:

Xml代码   收藏代码
  1. <config>  
  2.     <context-values>  
  3.         <!-- 该配置可以使path对应的文件中,如果使用key对象时,会自动补全其对应的java属性(通配符无效) -->  
  4.         <resource path="src/main/webapp/WEB-INF/template/userList.ftl">  
  5.             <value key="loan" object-class="net.domain.UserDO"/>  
  6.         </resource>  
  7.         <!-- 其余resource配置…… -->  
  8.     </context-values>  
  9.     <macro-library>  
  10.         <!-- 该配置可以使namespace命名空间下的所有macro、function自动补全 -->  
  11.         <entry namespace="component" path="src/main/webapp/WEB-INF/template/macro/component/component.ftl" project="web2.0" type="file"/>  
  12.         <!-- 其余macro-library配置…… -->  
  13.     </macro-library>  
  14. </config>  

 

现在,在userList.ftl文件中,我们只需要输入${user.}就会自动弹出其java类中定义的属性了。

再将原来导入componet.ftl的命令

Xml代码   收藏代码
  1. <#include "/macro/component/component.ftl">  

  改为:

Xml代码   收藏代码
  1. <#import "/macro/component/component.ftl" as component>  

 这样,我们就为component中的macro定义了一个命名空间 component(注意命名空间的名字要跟配置中的一样)。现在我们使用component中的macro,只需要输入"<@component."就会自动弹出component.ftl文件中定义的macro、function。而且将鼠标移上去,点击可以直接跳到定义的地方!

 

 

注意:如果 你在.freemarker-ide.xml中配置了你正在编辑的ftl文件,需要将文件关闭后,重新打开,编辑器才能读取到配置信息,代码提示 才能生效!

 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值