想飛就別怕摔

          大爺的并TM罵人

          struts2學習筆記(六)--OGNL

          一、直接訪問value stack contents中的值
          從頁面傳遞給action值username與password。
          action寫法:
          public class OgnlAction extends ActionSupport {

              
          private String username;
              
              
          private String password;

              
          public String execute() {
                  
          return SUCCESS;
              }

              
          public String getPassword() {
                  
          return password;
              }
              
              
          public String getUsername() {
                  
          return username;
              }

              
          public void setPassword(String password) {
                  
          this.password = password;
              }

              
          public void setUsername(String username) {
                  
          this.username = username;
              }

          }
          jsp頁面使用ognl獲取username與password值
          <li>訪問值棧中的action的普通屬性: username = <s:property value="username"/>
          password = <s:property value="password"/>
          </li>

          二、使用user.java類來接受傳遞數據
          user.java
          public class User {
              
          private int age ;
              
          private String username;
              
              
          public int getAge() {
                  
          return age;
              }

              
          public String getUsername() {
                  
          return username;
              }

              
          public void setUsername(String username) {
                  
          this.username = username;
              }

              
          public void setAge(int age) {
                  
          this.age = age;
              }
              
              @Override
              
          public String toString() {
                  
          return "user" + age;
              }
          }

          頁面傳遞數據
          <a href="<%=contextPath %>/ognl.action?user.age=2012&user.username=xxxxxxxx">ognl</a>

          action接收
          public class OgnlAction extends ActionSupport {
              
          private User user;

              
          public User getUser() {
                  
          return user;
              }

              
          public void setUser(User user) {
                  
          this.user = user;
              }
              
              
          private String excute() {
                  
          return SUCCESS;
              }
          }
          傳遞到頁面上顯示
          <s:property value="user.age"/>| <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/>
          <s:property value="user.username"/>
          這里提起一下ognl在jsp中訪問action的方法的寫法
          <li>訪問值棧中對象的普通方法:<s:property value="password.length()"/></li>
          <li>訪問值棧中對象的普通方法:<s:property value="cat.miaomiao()" /></li>
          <li>訪問值棧中action的普通方法:<s:property value="m()" /></li>

          ognl可以訪問靜態方法。需要在struts.xml中設置<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
          <li>訪問靜態方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>
          <li>訪問靜態屬性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>
          <li>訪問Math類的靜態方法:<s:property value="@@max(2,3)" /></li>

          <li>訪問普通類的構造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>

          ogin訪問集合
          <li>訪問List:<s:property value="users"/></li>
          <li>訪問List中某個元素:<s:property value="users[1]"/></li>
          <li>訪問List中元素某個屬性的集合:<s:property value="users.{age}"/></li>
          <li>訪問List中元素某個屬性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
          <li>訪問Set:<s:property value="dogs"/></li>
          <li>訪問Set中某個元素:<s:property value="dogs[1]"/></li>
          <li>訪問Map:<s:property value="dogMap"/></li>
          <li>訪問Map中某個元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
          <li>訪問Map中所有的key:<s:property value="dogMap.keys"/></li>
          <li>訪問Map中所有的value:<s:property value="dogMap.values"/></li>
          <li>訪問容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>

          <li>投影(過濾):<s:property value="users.{?#this.age==1}[0]"/></li>
          <li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li><!-- age>1集合中開頭的一個 --><li>
          投影:<s:property value="users.{$#this.age>1}.{age}"/></li><!-- age>1集合中結尾的一個 --><li>
          投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li><!-- 獲取的集合是否為空  -->


          posted on 2011-12-11 16:07 生命的綻放 閱讀(493) 評論(0)  編輯  收藏 所屬分類: Struts2.0

          <2011年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(5)

          隨筆分類(94)

          隨筆檔案(93)

          文章分類(5)

          文章檔案(5)

          相冊

          JAVA之橋

          SQL之音

          兄弟之窗

          常用工具下載

          積分與排名

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 昌邑市| 宜兴市| 东兰县| 察雅县| 西华县| 北宁市| 英德市| 洮南市| 开封县| 富顺县| 南木林县| 盐源县| 绥阳县| 塔城市| 达日县| 临安市| 新昌县| 乌拉特后旗| 察哈| 乌苏市| 江油市| 临沂市| 龙游县| 右玉县| 怀柔区| 易门县| 大田县| 台中县| 孝昌县| 曲沃县| 贵州省| 肃宁县| 全州县| 榆林市| 平定县| 凤阳县| 原阳县| 渝北区| 乌苏市| 鄂托克旗| 靖安县|