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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。