关于在jsp页面中使用/struts-tags标签库的迭代器时,从ValueStack获取参数使用EL的问题...

本文探讨了在Struts2框架中使用EL表达式遇到的问题及解决方案,特别是在页面显示和条件判断时的区别。强调避免混用EL和OGNL表达式,并推荐使用双引号加转义方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

情况复原下:

  通过valuestack存了个user,然后页面里可以${user.sex}拿到男。${user.sex=='男'}拿到ture

  但是在使用 <s:if text="${user.sex=='男'}">报错   <c:if text="${user.sex=='男'}">可以用

分析:

  我们都知道Struts2是对request进行增强了的,在getAttribute()无法获取数据时,会从ValueStack中获取.

  那么用s标签的if从逻辑上是没有问题的.但是s标签并没有提供完整的el表达式解析的支持.所以会报错

解决:

  <s:if test="user.sex==\"男\"">不使用el直接使用s标签配合ognl表达式获取数据 

收获

  收获1:

    最好不要混用EL(JSTL) 和ONGL 等表达式

  收获2:

    尽量少使用单引号,因为单引号可能不被支持,就比如s标签库里的ognl表达式就对单引号不支持.

    尽量使用双引号加/转义的方式.

转载于:https://www.cnblogs.com/zyh186/p/7214666.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值