首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于Struts2.0 标签中采取%{} 的处理原理

2012-08-25 
关于Struts2.0 标签中采用%{} 的处理原理?项目中采用struts2.0时,常常使用计算表单式的处理源码原理解析:

关于Struts2.0 标签中采用%{} 的处理原理

?项目中采用struts2.0时,常常使用计算表单式的处理源码原理解析:

例如:

?<s:set var="hasDeductAmount" value="%{bill.supplier.moneyPool>#amount?#amount:bill.supplier.moneyPool}"> </s:set>

上面的绿色为:value中值的表达式表示的值栈表达式为:去除%{}的表达式
bill.supplier.moneyPool>#amount?#amount:bill.supplier.moneyPool
备注: (1)原理看下面的源代码即可理解:
?????????? (2)#表示OGNL的表达式
?
<input name="billCon.amount" type="text" value="<s:property value='#hasDeductAmount'/>" />

Struts2.0中的每一个标签的都是以组件形式展示:

Component源代码如下:

?

?转自:http://topmanopensource.iteye.com/blog/570022

?

HTML标签的属性可以被赋值为一个静态的值或一个OGNL表达式。如果你在赋值时使用了一个OGNL表达式并把它用"%{"和"}"括了起来,这个表达式将会被求值。

比如,

????? 1、下面的label属性将被赋值字符串“useName”:

?????????? label="useName"

????? 2、而下面这个表达式使用了一个OGNL表达式userName,label属性的值将等于某一个动作类中的userName属性值:

?????????? label="%{useName}"

?????? 3、下面这个表达式将把label属性赋值为会话属性userName的值:

?????????? label="%{#session.userName}"

?????? 4、这个value属性将被赋值为6:

?????????? value="%{1 + 5}"

热点排行