浏览 2278 次
锁定老帖子 主题:男女问题折腾了我半天
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-29
原来是很简单的事情,为了生成一个性别的下拉框,任何一本struts书都会写上: <@s.select name="gender" list="#{'M':'男',,'F':'女'/> 但是我把result type指定为:freemarker,结果出exception了: freemarker.core.ParseException: Error on line xxx, column xx in filexxxx Found string literal: 'M' Expecting: number 哈哈,最简单的语法都能出状况,原因无外是Freemarker FTL和OGNL有冲突了。 In FreeMarker, the token "#{" marks the beginning of a numerical interpolation. Since FreeMarker tries to evaluate interpolations inside string expressions, the OGNL expression collides with FreeMarker's notation of numerical interpolations. So you have to use "raw strings", because FM ignores interpolations inside raw strings. 所以得改成: <@s.select name="gender" list=r"#{'M':'男',,'F':'女'/> 可我原来的'男','女'是利用${action.getText('gender.male')}生成的,加了r之后,这句也不起作用鸟,又是一番折腾。 最后的答案是: <@s.select name="gender" list=r"#{'M':getText('gender.male'),'F':getText('gender.female')}" /> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-29
总的来说,sitemesh和<@s.text...>这些标签和asp.net的masterpage比起来还是很原始的,尤其是sitemesh缺点大大的:
1.不运行实在看不出效果,没有masterpage的所见记所得的效果。 2.对插入的位置缺乏弹性,远没有server side component灵活。 3.为了i18n插入一堆<@s.text...>之后,页面就好像被狗啃过一样。 |
|
返回顶楼 | |