webwork date标签中ognl问题

[code="java"]

id="orderEndDate2" value="%{#orderEndDate1}" />
[/code]

value="%{#orderEndDate1}"
OGNL值表达式
不理解为什么要这么写?

这个标签是个怎么样生成机制?

致使我在相应的页面中用 value="%{#orderEndDate}" 也能取到值
这是什么回事?

[b]问题补充:[/b]
我的意思是:
EL表达式 我的action里面没有定义 orderEndDate1这个属性
定义的只是 order对象

为什么我在同一个页面
只是简单的用
[code="java"]

[/code]

还是能取到值。这里有点不明白
是不是在加载date和datepicker标签的时候
就默认的给整个OGNL的值栈中加入了 名为orderEndDate1的key-value对象

多谢你的回答
还是不太明白 可以说得更详细点吗?
[b]问题补充:[/b]
[quote]@dwangel [/quote]

多谢你的回答
这个问题 是没有的

[b]问题补充:[/b]
就是说在页面上定义了
[quote]

id="orderEndDate2" value="%{#orderEndDate1}" /> [/quote]

然后在同一页面也定义了
[quote] [/quote]

不明白为什么 下面能取到值
当然 上面的date标签处的 ognl也不甚明白
[b]问题补充:[/b]
[quote]@jansel [/quote]
我知道是有关系 以前一直用啊用 都不管啥的

今天公司一新同事 问其用ognl
居然都取的是页面标签的ID作为key
当然有很多取不出来
但是发现date标签的可以取出来

然后就开始想为什么 这样啊
于是又了 这个问题?

麻烦各位 有这方面了解的 指导哈 多谢

[b]问题补充:[/b]
[quote]@jansel [/quote]
你说的很对
url和date 就是这样

平时做的太多 都没怎么想
大家一起想想 ?

多谢
[b]问题补充:[/b]
[quote]@dwangel[/quote]

不好意思 确实少打了一个1 不好意思 手误
[quote]
致使我在相应的页面中用 value="%{#orderEndDate1}" 也能取到值
这是什么回事?
[/quote]

现该过来了

你说的那个链接??
还是 没太懂明白 这个到底是怎么搞定的
url标签 和date标签

[b]问题补充:[/b]
感谢大家 参与一起讨论

dwangel 多谢你说的比较细致
结贴 属于你哈

事后我试过几类标签的操作
貌似form标签取值非form标签得用%{#example}
from标签取值data标签得用%{example}

例子是:
ww:url/
ww:date/
ww:url/ww:hidden/

可以试下 就是个蛮好的说明

我蛮想给每位回答的 加一分
可是 JE不支持

非常郁闷的是 Je结贴的 字符不能超过100个
哼....

当你使用了id 属性时,

在page 的valueStack里就声明了一个 格式后日期的字符串对象,
这个对象的用orderEndDate1可以获取。

webwork 里非 UI和非form的tag
在使用了id 属性后,都会在valueStack里登记该id 的对象。

这是就是OGNL的内部机制,语法

为什么要这么做,当然就是和el表达式区分开来嘛

怀疑楼主是在没注意到的地方声明了 orderEndDate1

其实要验证,也很简单,另作一个项目,用这两个标签。
看看成立与否。

这个东西可能和LZ的第一个ww:date定义的id="orderEndDate1"有关,当然猜测而已。

类似的还有就是Struts2/Webwork中对URL的处理的时候也是可以从OGNL中获取ID值的

唉,说白了就是Struts2/Webwork在处理Tag的时候到底把ID的值有没有放在ValueStack中而已,我也不太理解为什么处理URL的时候也是。

就比如:

[code="xml"]


Ext Demo/s:a

[/code]

我这里就是使用%{demoUrl}来获取URL的定义。


楼主的问题其实很简单

这个tag 就是在page的valueStack里注册
id里声明的 变量的啊。

[url]http://www.opensymphony.com/webwork/wikidocs/Form%20Tags.html[/url]
文档里很清楚:
ID Name Assignment
All form tags automatically assign an ID for you. You are free to override this ID if you wish. The ID assignment works as follows:

For forms, the ID is the assumed to the action name. In the previous example, the ID would be "updatePerson".
For form elements, the ID is assumed to be [form's ID]_[element name]

[quote]致使我在相应的页面中用 value="%{#orderEndDate}" 也能取到值
这是什么回事?[/quote]

楼主少打一个1,让我误解了。

抱歉,中间对webwork文档是我理解错了。

文档里date tag 的id 的说明是 id for referencing element.id for referencing element. For UI and form tags it will be used as HTML id attribute.

date tag 是属于Non-form tag 的。