JavaScud | Forum | JIRA | Blog |
  Dashboard > WebWork2文档中文化计划 > ... > Tag Syntax > Alt Syntax
  WebWork2文档中文化计划 Log In View a printable version of the current page.  
  Alt Syntax
Added by scud, last edited by scud on Apr 12, 2006  (view change)
Labels: 
(None)

altSyntax 是一个可以在webwork.properties里定义的选项. 缺省它被设置为true,而且 强烈 推荐你不要改变它,除非你是从WebWork 2.1.7或者更前面的版本升级过来的.

迁移提示
你可以通过set标签基于每个页面开启 altSyntax. 简单地设置name为_useAltSyntax_ 变量的value 为 true. 此时,所有的标签都会使用 altSyntax 来处理剩余的部分请求.

altSyntax改变了标签如何被解析的行为.它不再在value stack上对每个标签参数进行求值,也不需要用单引号包含字符串文字,它仅对标记的表达式进行求值.

举例:

下面的代码使用了Tag Syntax:

<ww:iterator value="cart.items">
   ...
   <ww:textfield label="'Cart item No.' + #rowstatus.index + ' note'" 
                 name="'cart.items[' + #rowstatus.index + '].note'" 
                 value="note" />
</ww:iterator>

这感觉有点不像HTML标签的行为,而且你多写了单引号.现在下面是同样例子使用了altSyntax:

<ww:iterator value="cart.items">
   ...
   <ww:textfield label="Cart item No. %{#rowstatus.index} note" 
                 name="cart.items[%{#rowstatus.index}].note" 
                 value="%{note}" />
</ww:iterator>

只有包含在%{}里面的表达式才会被求值.代码短小而且清晰,非常类似JSTL EL的用法.引用问题,例如对javascript函数的调用,就被避免了.

为了全面理解为什么这个选项存在以及差别是什么,最好了解一点WebWork的历史.

如果你 不是 从WebWork 2.1.7或者更前面的版本升级过来的,你无须关心WebWork发展的历史,你可以略过此部分.查看 Tag Syntax 部分来了解更多关于标准标签语法支持的信息

历史

在WebWork 2.1.4中,altSyntax选项被引进.WebWork in Action这本书,它是基于WebWork 2.1.7的,是完全基于altSyntx语法被开启的前提下编写的.在WebWork 2.2中,altSyntax缺省被开启,而且最终老的语法不在被支持而且会从代码里移除.

merge

Posted by Anonymous at Jul 19, 2007 10:30 | Reply To This
Site running on a free Atlassian Confluence Open Source Project License granted to WebWork China. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.3 Build:#808 May 29, 2007) - Bug/feature request - Contact Administrators