亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Struts2 OGNL表達式實例詳解

 更新時間:2017年09月27日 14:53:23   作者:光仔December  
這篇文章主要介紹了Struts2 OGNL表達式實例詳解,相關實例代碼,需要的朋友可以參考。

Object Graph Navigation Language:對象圖導航語言,就是用點來訪問成員變量

<s:property value="cat.name"/> 

例1:

struts.xml:

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

OgnlAction1.java:

package cn.edu.hpu.action; 
import com.opensymphony.xwork2.ActionSupport; 
public class OgnlAction1 extends ActionSupport{ 
  private String username; 
  private String password; 
  public String getUsername() { 
    return username; 
  }  
  public void setUsername(String username) { 
    this.username = username; 
  } 
  public String getPassword() { 
    return password; 
  } 
  public void setPassword(String password) { 
    this.password = password; 
  } 
  @Override 
  public String execute() throws Exception { 
    // TODO Auto-generated method stub 
    return super.execute(); 
  } 
} 

訪問鏈接:

<a href="<%=basePath%>ognl/og1?username=jack&&password=111" rel="external nofollow" >OGNL</a><br/> 

結果界面:

OGNL SUCCESS!!<br/> 
  <ol> 
    <li>訪問值棧中的action的普通屬性1=<s:property value="username"/></li> 
    <li>訪問值棧中的action的普通屬性2=<s:property value="password"/></li> 
  </ol> 
  <s:debug></s:debug> 

結果顯示:

OGNL SUCCESS!!

訪問值棧中的action的普通屬性1=jack

訪問值棧中的action的普通屬性2=111

[Debug]
ps:點擊[Debug]可以查看到棧值中有username與password

例2:

struts.xml:

<package name="ognl" namespace="/ognl" extends="struts-default"> 
 <action name="user2" class="cn.edu.hpu.action.UserAction2" method="add"> 
   <result name="success">/ognl.jsp</result> 
  </action> 
</package> 

UserAction2.java:

package cn.edu.hpu.action;  
import cn.edu.hpu.mode.User; 
public class UserAction2 {  
  private User user;    
  public String add(){ 
    System.out.println("name="+user.getName()); 
    System.out.println("age="+user.getAge()); 
    return "success"; 
  } 
  public User getUser() { 
    return user; 
  } 
  public void setUser(User user) { 
    this.user = user; 
  }   
} 

User.java:

package cn.edu.hpu.mode;  
public class User {      
  private String name; 
  private int age;   
  public String getName() { 
    return name; 
  }  
  public void setName(String name) { 
    this.name = name; 
  }   
  public int getAge() { 
    return age; 
  }   
  public void setAge(int age) { 
    this.age = age; 
  }    
} 

鏈接:

訪問User屬性

<a href="<%=basePath%>ognl/user2?user.name=tom&&user.age=21" rel="external nofollow" >OGNL2</a><br/> 

(只有你傳user.XXXX才能構造)

結果頁面:

<%@taglib uri="/struts-tags" prefix="s" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
  <base href="<%=basePath%>" rel="external nofollow" > 
  <title>My JSP 'ognl.jsp' starting page</title> 
 </head> 
  
 <body> 
  OGNL SUCCESS!!<br/> 
  <ol> 
    <li>訪問值棧中對象的普通屬性(get set 方法 ): 
    <br/> 
 user-age:<s:property value="user.age"/>|<s:property value="user['age']"/></li> 
  </ol> 
  <s:debug></s:debug> 
 </body> 
</html> 

顯示結果:

OGNL SUCCESS!!

訪問值棧中對象的普通屬性(get set 方法 ):

user-age:21|21

[Debug]

點擊[Debug]可以查看到棧值中有user對象的存在

例3:

struts.xml

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

OgnlAction2.java:

package cn.edu.hpu.ognl; 
 
import cn.edu.hpu.mode.Cat;  
import com.opensymphony.xwork2.ActionSupport; 
public class OgnlAction2 extends ActionSupport{   
  private Cat cat; 
  public Cat getCat() { 
    return cat; 
  } 
  public void setCat(Cat cat) { 
    this.cat = cat; 
  } 
  public String execute(){ 
    return "success"; 
  } 
  public String m(){ 
    return "Hello"; 
  } 
} 

Cat.java:

package cn.edu.hpu.mode;  
public class Cat {  
  private Dog friend; 
  public Dog getFriend() { 
    return friend; 
  } 
  public void setFriend(Dog friend) { 
    this.friend = friend; 
  }  
  public String miaomiao(){ 
    return "miaomiao"; 
  } 
} 

Dog.java:

package cn.edu.hpu.mode;   
public class Dog {    
  private String name;    
  public Dog(){      
  }    
  public Dog(String name){ 
    super(); 
    this.name=name; 
  }   
  public String getName() { 
    return name; 
  } 
  public void setName(String name) { 
    this.name = name; 
  }  
  @Override 
  public String toString() { 
    // TODO Auto-generated method stub 
    return "dog:"+name; 
  } 
} 

鏈接:

 訪問Cat屬性

<a href="<%=basePath%>ognl/cat1?cat.friend.name=littleBoy" rel="external nofollow" >OGNL3</a><br/>

結果頁面:

<li>訪問值棧中對象的普通屬性(get set 方法 ): 
    <br/> 
    cat-friend-name:<s:property value="cat.friend.name"/></li> 

結果:

訪問值棧中對象的普通屬性(get set 方法 ):

cat-friend-name:littleBoy

觀察[Debug],發(fā)現只有cat在值棧中,說明通過cat聯系到dog,取得dog中的屬性

訪問cat方法:

<a href="<%=basePath%>ognl/cat1" rel="external nofollow" rel="external nofollow" >OGNL4</a><br/>

結果頁面:

<li>訪問值棧中對象的普通方法: 
    <br/> 
    cat-miaomiao:<s:property value="cat.miaomiao()"/></li> 

結果:

訪問值棧中對象的普通屬性:

cat-miaomiao:miaomiao

訪問action的普通方法:

<a href="<%=basePath%>ognl/cat1" rel="external nofollow" rel="external nofollow" >OGNL5</a><br/> 

結果頁面:

<li>訪問值棧中action的普通方法: 
    <br/> 
    action-m():<s:property value="m()"/></li> 

結果:

訪問值棧中acion的普通方法:

action-m():Hello

總結

以上就是本文關于Struts2 OGNL表達式實例詳解的全部內容,希望對大家有所幫助。有什么問題可以隨時留言,歡迎大家交流討論。

相關文章

  • Spring Security 密碼驗證動態(tài)加鹽的驗證處理方法

    Spring Security 密碼驗證動態(tài)加鹽的驗證處理方法

    小編最近在改造項目,需要將gateway整合security在一起進行認證和鑒權,今天小編給大家分享Spring Security 密碼驗證動態(tài)加鹽的驗證處理方法,感興趣的朋友一起看看吧
    2021-06-06
  • java基礎學習筆記之泛型

    java基礎學習筆記之泛型

    所謂泛型,就是變量類型的參數化。泛型是JDK1.5中一個最重要的特征。通過引入泛型,我們將獲得編譯時類型的安全和運行時更小的拋出ClassCastException的可能。在JDK1.5中,你可以聲明一個集合將接收/返回的對象的類型。
    2016-02-02
  • 解決CollectionUtils.isNotEmpty()不存在的問題

    解決CollectionUtils.isNotEmpty()不存在的問題

    這篇文章主要介紹了解決CollectionUtils.isNotEmpty()不存在的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java實現的連續(xù)奇數(n+2*x)是合數的算法題暴力算法

    Java實現的連續(xù)奇數(n+2*x)是合數的算法題暴力算法

    這篇文章主要介紹了Java實現的連續(xù)奇數(n+2*x)是合數的算法題暴力算法,本文包含運算結果和實現代碼,需要的朋友可以參考下
    2014-09-09
  • Javaweb使用getPart接收表單文件過程解析

    Javaweb使用getPart接收表單文件過程解析

    這篇文章主要介紹了Javaweb使用getPart接收表單文件過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Spring中使用事務嵌套時需要警惕的問題分享

    Spring中使用事務嵌套時需要警惕的問題分享

    最近項目上有一個使用事務相對復雜的業(yè)務場景報錯了。在絕大多數情況下,都是風平浪靜,沒有問題。其實內在暗流涌動,在有些異常情況下就會報錯,這種偶然性的問題很有可能就會在暴露到生產上造成事故,那究竟是怎么回事呢?本文就來簡單講講
    2023-04-04
  • 簡單了解synchronized和lock的區(qū)別

    簡單了解synchronized和lock的區(qū)別

    這篇文章主要介紹了簡單了解synchronized和lock的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • springboot亂碼問題解決方案

    springboot亂碼問題解決方案

    這篇文章主要介紹了springboot亂碼問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Javaweb使用cors完成跨域ajax數據交互

    Javaweb使用cors完成跨域ajax數據交互

    本文由跨域、cors的概念開始,進而向大家介紹了Javaweb使用cors完成跨域ajax數據交互的相關內容,需要的朋友可以了解下。
    2017-09-09
  • 淺談Spring單例Bean與單例模式的區(qū)別

    淺談Spring單例Bean與單例模式的區(qū)別

    這篇文章主要介紹了淺談Spring單例Bean與單例模式的區(qū)別,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12

最新評論