想飛就別怕摔

          大爺的并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 生命的綻放 閱讀(492) 評論(0)  編輯  收藏 所屬分類: Struts2.0

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

          導航

          統計

          常用鏈接

          留言簿(5)

          隨筆分類(94)

          隨筆檔案(93)

          文章分類(5)

          文章檔案(5)

          相冊

          JAVA之橋

          SQL之音

          兄弟之窗

          常用工具下載

          積分與排名

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 拜城县| 靖江市| 岳西县| 钦州市| 襄城县| 商南县| 涞水县| 丽水市| 仙居县| 徐州市| 凤城市| 东宁县| 闽侯县| 昌乐县| 泉州市| 梨树县| 永年县| 焉耆| 沁阳市| 社旗县| 江山市| 乌鲁木齐县| 新河县| 勐海县| 增城市| 彭水| 冕宁县| 平谷区| 濮阳市| 都匀市| 丹东市| 济阳县| 荣昌县| 湟中县| 长海县| 项城市| 胶南市| 长葛市| 赤壁市| 桓台县| 泰州市|