samungtered
2009-08-31 17:57 阅读 268
已采纳

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个
哼....

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    iteye_7589 iteye_7589 2009-08-31 21:58

    当你使用了id 属性时,

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

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

    点赞 评论 复制链接分享
  • wanghaolovezlq wanghaolovezlq 2009-08-31 17:59

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

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

    点赞 评论 复制链接分享
  • iteye_7589 iteye_7589 2009-08-31 18:22

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

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

    点赞 评论 复制链接分享
  • iteye_15225 iteye_15225 2009-08-31 18:46

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

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

    点赞 评论 复制链接分享
  • iteye_15225 iteye_15225 2009-08-31 19:40

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

    就比如:

    [code="xml"]


    Ext Demo/s:a

    [/code]

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

    点赞 评论 复制链接分享
  • iteye_7589 iteye_7589 2009-08-31 21:18


    楼主的问题其实很简单

    这个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,让我误解了。

    点赞 评论 复制链接分享
  • iteye_7589 iteye_7589 2009-08-31 21:23

    抱歉,中间对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 的。

    点赞 评论 复制链接分享

相关推荐