您好,登錄后才能下訂單哦!
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表達式實現投影的全部內容,希望對大家有所幫助。有問題請留言,小編會及時回復大家的。感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。