精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-03-09
引用 这种冲突可能性很小。就算出现,直接hide java method就完了。为了这么个虚无飘渺的原因就搞出一个特殊的语法来,觉得粉不值。
无语……这么霸道的框架,这样来看,每一次我写value.myField,还要胆战心惊的去查查看这个框架有没有这个myField内置函数,哦,没有,万幸……嘿,框架升级了,增加了更多的内置函数,又要来心惊胆战一次……恩,还不是一次,恐怕还要把整个项目的代码全部翻一遍,谁知道哪个地方用到了与内置函数同名的field 引用 至于受体?动作,主体.动作,不过是说法不同,从语言语义上没区别。 "abc".toLowerCase()是主体还是受体? "abc"?lower_case是主体还是受体? 受体?动作 主体.动作 这里只是为了说明在freemarker中,?与.反映到java code的情况下,对象是属于调用主体还是作为参数的关系,不是要咬文嚼字。一就是一,二就是二,不存在说法不同 |
|
返回顶楼 | |
发表时间:2006-03-09
lllyq 写道 无语……这么霸道的框架 要这么说,你连java也别用了。在java里面,不能定义一个和某个instance方法相同签名的静态方法,那么也是霸道的框架了? 无符号数都没有,更加霸道。 操作符不能重载,简直霸道到极点。 我记得java justify这些抉择的理由是: 1。这些东西不是那么有用 2。没有它们语言会简单很很多。 习惯是个很强的理由了已经。不必要拿一些牵强的理由为了习惯辩护。 lllyq 写道 引用 至于受体?动作,主体.动作,不过是说法不同,从语言语义上没区别。 "abc".toLowerCase()是主体还是受体? "abc"?lower_case是主体还是受体? 受体?动作 主体.动作 这里只是为了说明在freemarker中,?与.反映到java code的情况下,对象是属于调用主体还是作为参数的关系,不是要咬文嚼字。一就是一,二就是二,不存在说法不同 回答问题: "abc".toLowerCase()里面的"abc"在你的哲学里面是主体还是受体? |
|
返回顶楼 | |
发表时间:2006-03-09
ajoo 写道 lllyq 写道 无语……这么霸道的框架 要这么说,你连java也别用了。在java里面,不能定义一个和某个instance方法相同签名的静态方法,那么也是霸道的框架了? 无符号数都没有,更加霸道。 操作符不能重载,简直霸道到极点。 习惯是个很强的理由了已经。不必要拿一些牵强的理由为了习惯辩护。 lllyq 写道 引用 至于受体?动作,主体.动作,不过是说法不同,从语言语义上没区别。 "abc".toLowerCase()是主体还是受体? "abc"?lower_case是主体还是受体? 受体?动作 主体.动作 这里只是为了说明在freemarker中,?与.反映到java code的情况下,对象是属于调用主体还是作为参数的关系,不是要咬文嚼字。一就是一,二就是二,不存在说法不同 回答问题: "abc".toLowerCase()里面的"abc"在你的哲学里面是主体还是受体? 咳,使我不对,用词引起误会,这样说吧 在freemarker中 value.string 对应的java code 是 value.getString() value?string 对应的java code是 fmUtil.getString(value) |
|
返回顶楼 | |
发表时间:2006-03-09
引用 这样来看,每一次我写value.myField,还要胆战心惊的去查查看这个框架有没有这个 myField内置函数,哦,没有,万幸……嘿,框架升级了,增加了更多的内置函数,又要来心惊胆战一次……恩,还不是一次,恐怕还要把整个项目的代码全部翻一遍,谁知道哪个地方用到了与内置函数同名的field
嗯,嗯。versioning确实是个问题。是我考虑不周。 不过这个?还是太丑,而且很容易让人误会是逻辑判断什么的。为什么不用"->",感觉漂亮很多。 还有,freemarker method和built-in有什么区别?为什么要存在这两个东西?还是说只是两种调用语法,实际上都是一样的? |
|
返回顶楼 | |
发表时间:2006-03-09
freemarker主要就下面4样东西
${} 输出 <# /> 内置宏 <@ /> 自定义宏 ? 以自身作为参数调用内置函数 (Built-in) 其中,自定义宏可嵌套。准确说没有这个freemarker method的说法,可以看作内置宏吧。 |
|
返回顶楼 | |
发表时间:2006-03-09
http://fmpp.sourceforge.net/freemarker/dgui_datamodel_method.html
|
|
返回顶楼 | |
发表时间:2006-03-09
ajoo 写道 http://fmpp.sourceforge.net/freemarker/dgui_datamodel_method.html
at the above page 引用 Suppose that programmers have put the method variable
and at this page http://fmpp.sourceforge.net/freemarker/dgui_template_exp.html#dgui_template_exp_methodcall 引用 For example, assume the programmers have made available a method variable called repeat. You give a string as the first parameter, and a number as the second parameter, and it returns a string which repeats the first parameter the number of times specified by the second parameter.
${repeat("What", 3)} 自定义的java函数 |
|
返回顶楼 | |
发表时间:2006-03-09
什么意思?为什么不是obj.repeat(..),而是repeat(..),不象java函数啊。
|
|
返回顶楼 | |
发表时间:2006-03-09
刚才特别试验了一下,才知道freemarker支持method作为变量,当然也可以传递到macro中去。
例如有 obj.someMethod(......), <#assign xxx=obj.someMethod> ${xxx(......)} |
|
返回顶楼 | |
发表时间:2006-03-09
明白了。
不过还是不喜欢这个?语法。 jaskell 0.9开始,支持"->"语法。 freemarker的name?html可以写成name->html。感觉舒服些。 当然,这纯粹是语法美观问题。 |
|
返回顶楼 | |