Struts2 通过ognl表达式实现投影

发布时间 - 2026-01-11 03:27:56    点击率:

projection(投影):俗话说就是过滤,就是过滤器把符合条件的过滤出来

struts.xml:

<package name="ognl" namespace="/ognl" extends="struts-default"> 
 <action name="pro" class="cn.edu.hpu.ognl.OgnlAction4"> 
      <result name="success">/ognl.jsp</result> 
    </action> 
</package> 

OgnlAction4.java:

package cn.edu.hpu.ognl; 
import java.util.ArrayList; 
import cn.edu.hpu.mode.User; 
import com.opensymphony.xwork2.ActionSupport; 
public class OgnlAction4 extends ActionSupport{ 
  private ArrayList<User> users; 
  public OgnlAction4(){ 
    users=new ArrayList<User>(); 
    User user1=new User(); 
    user1.setAge(18); 
    User user2=new User(); 
    user2.setAge(1); 
    User user3=new User(); 
    user3.setAge(21); 
    User user4=new User(); 
    user4.setAge(23); 
    users.add(user1); 
    users.add(user2); 
    users.add(user3); 
    users.add(user4); 
  } 
  public ArrayList<User> getUsers() { 
    return users; 
  } 
  public void setUsers(ArrayList<User> users) { 
    this.users = users; 
  } 
  @Override 
  public String execute() throws Exception { 
    // TODO Auto-generated method stub 
    return "success"; 
  } 
} 

链接:

过滤:<a href="<%=basePath%>ognl/pro" rel="external nofollow" >OGNL9</a><br/> 

结果界面:

<!-- 正则表达式中,"^"代表开头,"$"代表结尾,"?"代表过滤 --> 
<li>投影(过滤):<s:property value="users.{?#this.age==1}.{age}"/><br/> 
<!-- 找到所有年龄大于1的user,取第一个 --> 
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/><br/> 
<!-- 找到所有年龄大于1的user,取最后一个 --> 
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/><br/> 
<!-- 找到所有年龄大于1的集合,判断这个集合是否为空 --> 
<li>投影:<s:property value="users.{$#this.age>1}.{age} == null"/><br/> 

结果:

投影(过滤):[1]
投影:[18]
投影:[23]
投影:false

总结

以上就是本文关于Struts2 通过ognl表达式实现投影的全部内容,希望对大家有所帮助。有问题请留言,小编会及时回复大家的。感谢大家对网站的支持!


# struts2  # ognl表达式  # struts2的ognl表达式  # projection  # 详解Struts2动态方法调用  # Struts2 OGNL表达式实例详解  # Struts2修改上传文件大小限制方法解析  # AjaxFileUpload+Struts2实现多文件上传功能  # struts2开发流程及详细配置  # struts+spring+hibernate三个框架的整合  # Struts2获取参数的三种方法总结  # 第一个  # 小编  # 符合条件  # 俗话说  # 感谢大家  # 为空  # 正则表达式  # import  # java  # success  # util  # jsp  # result  # hpu  # ArrayList  # private  # public  # users  # ActionSupport  # User 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何续费美橙建站之星域名及服务?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  Laravel如何实现API版本控制_Laravel版本化API设计方案  Python3.6正式版新特性预览  如何在Ubuntu系统下快速搭建WordPress个人网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  QQ浏览器网页版登录入口 个人中心在线进入  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  微信小程序 require机制详解及实例代码  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  如何在Windows 2008云服务器安全搭建网站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel如何与Pusher实现实时通信?(WebSocket示例)  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Mybatis 中的insertOrUpdate操作  如何自定义建站之星网站的导航菜单样式?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  打造顶配客厅影院,这份100寸电视推荐名单请查收  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel API资源类怎么用_Laravel API Resource数据转换  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何快速搭建高效WAP手机网站?  Laravel storage目录权限问题_Laravel文件写入权限设置  如何快速选择适合个人网站的云服务器配置?  文字头像制作网站推荐软件,醒图能自动配文字吗?  如何利用DOS批处理实现定时关机操作详解  使用spring连接及操作mongodb3.0实例  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel怎么判断请求类型_Laravel Request isMethod用法  香港网站服务器数量如何影响SEO优化效果?  LinuxCD持续部署教程_自动发布与回滚机制  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  北京的网站制作公司有哪些,哪个视频网站最好?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程