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