首页 > 开发 > Java > 正文

Struts2 通过ognl表达式实现投影

2024-07-13 10:12:21
字体:
来源:转载
供稿:网友

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表达式实现投影的全部内容,希望对大家有所帮助。有问题请留言,小编会及时回复大家的。感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表