网站大量收购独家精品文档,联系QQ:2885784924

Struts2的标签.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Struts2的标签

Struts2的标签,valueStack,$ ,# ,% 的问题 struts2的标签是使用OGNL表达式语言访问数据,OGNL使用的是Context包含对象,而Context的根对象就是ValueStack,所以对于ValueStack中的 属性可以直接访问。如下: ?ValueStack中有属性name,则访问形式为:${name},或使用struts2标签:s:property?value=name?/ 但这种形式是不行的:s:property?value=${name}?/,将报错:According?to?TLD?or?attribute?directive?in?tag?file,?attribute?value?does?not?accept?any?expressions 这是因为struts2标签将其认为是el标签,而struts2标签不接受el标签。 对于这种形式:s:textfield?name=name?value=%{name}/s:textfield?value属性获取值name值时用到了%{name},这是因为不加%{}他就认为value的值就是name了,而不是name属性的值 加了%{}后struts2标签才会认出是要name属性的值。其实我们可以直接这样写,而不用value属性s:textfield?name=name/s:textfield 对于不是栈顶的对象的访问要使用#,看下面的例子: public?class?TestAction?extends?ActionSupport?{ ?private?String?name; ?private?ExamType?examType; ?public?String?execute()?{ ??this.setName(xian); ??ExamType?et?=?new?ExamType(); ??et.setExam_Type(考试课); ??et.setExamT_Id(12l); ??et.setComments(考试课是要考试的); ??this.setExamType(et); ??Map?map?=?ActionContext.getContext().getSession(); ??map.put(str,?yesyesyes); ??return?SUCCESS; ?} ?public?String?getName()?{ ??return?name; ?} ?public?void?setName(String?name)?{ ??this.name?=?name; ?} ?public?ExamType?getExamType()?{ ??return?examType; ?} ?public?void?setExamType(ExamType?examType)?{ ??this.examType?=?examType; ?} ? } 页面的body部分 body s:debug/s:debug????//struts2的调试标签,很有用,能看到Context中的内容 ?s:textfield?name=name/s:textfieldbr ?s:textfield?name=examType.exam_Type/s:textfieldbr ?????s:property?value=examType.exam_Type/br ?????s:property?value=name/br ?????input?type=text?value=${examType.exam_Type} ?${str}br ?s:property?value=#session.str/br /body? 打开debug后,可以看到下面这些信息 ?? ? 这里的属性就是属于根对象ValueStack的,可以直接访问?,如s:textfield?name=name/s:textfieldbr ? 这里的是不是根对象的属性,使用#访问,如?s:property?value=#session.str/br?即#key.proName 若这样访问${str}也行,因为属性值是从栈顶一直向下比较而得出值来的

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档