永发信息网

struts2中,<s:.../>标签#号问题

答案:3  悬赏:10  手机版
解决时间 2021-04-03 14:02
  • 提问者网友:山高云阔
  • 2021-04-03 00:23
struts2中,<s:.../>标签#号问题
最佳答案
  • 五星知识达人网友:夜余生
  • 2021-04-03 01:00
我说一下我的理解

request里的东西,都同时也放在了valueStack的顶层。

以前是request、response、context等这些是基本默认对象作为根值对象,在栈的顶层,你可以直接调用,比如request.什么什么。

现在Sturts2,顶层换了。比如你的request里先前存了一个叫name的变量,那么OGNL中,你这样就可以:
这样就取到值了。
如果是普通HTML标签,这样:
这样取值。
我觉得它俩反过来就不好用,也不知道是不是我配置的问题。

那么假如你需要用request或response了,实际上调用:
ServletActionContext.getRequest();或
ServletActionContext.getResponse();
现在OGNL用井号#代替了上面,即#request就可以取到了。

又比如你自己一个对象addr出来,那么这个对象跟默认的那几个对象,即request、response等等是在一个层次上的,对于以前的jsp,是可以直接调用到的,但Struts2不行了。所以:
#addr

%{addr}或${addr}
是两个东西,后者是request里的,当然人为也可能让它们都指同一个东西。
全部回答
  • 1楼网友:怙棘
  • 2021-04-03 01:27
标签很强大!
是获取值栈里的值并显示
从值栈里取值不用#, 从request, 或变量里取值要用#
  • 2楼网友:末日狂欢
  • 2021-04-03 01:13
用debug去看看就可以了.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯