
List集合对象需要循环的
<s:iterator id="List" value="#Request键值">
<s:property value="List"/>//如果是单个值
<s:property value="Listname"/>//如果存的是对象,就属性
</s:iterator>
1、struts2用的是ognl,它与jstl取值有点不同。
2、ognl与jstl判断属性是否为空均是通过test来判断。
3、jstl判断语法:<c:if test="${list==null}"> </c:if>。
4、struts2的ognl从request中取值不能直接$(),必须用#request如下:
<s:if test="#requestlist==null"> </s:if>。
#requestmapkeySet() 拿到map的keySet,用于上述代码的第一层循环,赋值到sobj
第一层循环相当于创建了一个Iterator对象,用于迭代keySet,每次迭代取值赋予sobj
第二层循环将刚才取到的sobj(也就是一个key)作为键值,从map里取出对应的value
在公司金融云中台项目中,需要对接不同的资金方和资产方,对接的接口JSON报文形式也是各式各样。经常需要获取某个json字段,不得不层层获取json对象,非常不方便。
后来发现Ognl(Object Graph Navigation Language 对象导航图语言)能够通过EL表达式获取对象的属性值。根据这一特性,经过封装,轻松实现获取JSON多层嵌套数据。
工具特点
1、方便获取JSON多层嵌套数据,无需层层获取json对象
2、当json字段值为空字符串时,返回空字符串
3、当json字段不存在时,返回NULL
POM引入
封装OGNL工具类
测试
JSON示例
测试结果
你都用struts2了还取servlet的session,request干嘛
你不就是想把值传给jsp吗,直接用struts2传就是的了,干嘛还用什么session、request的。
我也正好在看这个,把我刚理解的给你说下吧,不一定对。
Map request=(Map)ActionContextgetContext()get("request");
Map request // 声明一个名字为request的Map对象(这个名字不是request也可以)
然后对request进行实例化,但是因为 ActionContextgetContext()get("request");不是Map类型的
所以前面需要加“(Map)”进行强制转换。
“ActionContext”是“xwork-core-223jar”(反正就是Xwork了 也许咱们的版本不一样,有兴趣的话你可以去了解一下Xwork)下面的“comopensymphonyxwork2ActionContext;”包,
后面的getContext()get("request");就都是ActionContext里面的方法(函数)了。
注意的是,“get("request");”括号里面的request不能变,这个request不是你前面声明的request对象,具体了解可以去上面说的包下面看源码,
本来想给你大概说下ActionContext的,但是我这代码关联不上,你自己去看吧。
据体用法的话,既然已经有request这个对象了,比如你可以在JSP页面中加
<%= requestgetAttribute("list") %>看看效果。
或者假如你要希望数据库写数据,要用到”list“那么可以调用这个action中的这个reuest,
例如 Map m = actionrequest;
最后,就像J2SE中的Main()方法一样,这都是固定的,记住就可以了。至于用法那就多种多样,光说具体用法那就说死了,但事实是很灵活的东西,看需求吧。
两年后再补充一点吧,ActionContext对象里面封装了Action用到的一些数据。另外struts2把我们的request对象做了一些修改,重新封装成它自己需要的并放在了ActionContext对象中。
action向jsp传值的方法有三种:
1用requestsetAttribute()方法,不过只适用于请求转发,不可用于重定向
2用sessionsetAttribute()方法
3用struts2标签,在Java类中定义这个值对象,然后赋值,并且给出setter和getter方法,在jsp页面中,使用
<s:property value=""/>来获取
以上就是关于使用Struts2中的OGNL投影过滤时取不到值全部的内容,包括:使用Struts2中的OGNL投影过滤时取不到值、s标签怎么判断一个值是否为空、大家看看 这句 OGNL表达式 是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)