想飛就別怕摔

          大爺?shù)牟M罵人

          struts2學(xué)習(xí)筆記(六)--OGNL

          一、直接訪問value stack contents中的值
          從頁面?zhèn)鬟f給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類來接受傳遞數(shù)據(jù)
          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;
              }
          }

          頁面?zhèn)鬟f數(shù)據(jù)
          <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>訪問值棧中對(duì)象的普通方法:<s:property value="password.length()"/></li>
          <li>訪問值棧中對(duì)象的普通方法:<s:property value="cat.miaomiao()" /></li>
          <li>訪問值棧中action的普通方法:<s:property value="m()" /></li>

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

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

          ogin訪問集合
          <li>訪問List:<s:property value="users"/></li>
          <li>訪問List中某個(gè)元素:<s:property value="users[1]"/></li>
          <li>訪問List中元素某個(gè)屬性的集合:<s:property value="users.{age}"/></li>
          <li>訪問List中元素某個(gè)屬性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
          <li>訪問Set:<s:property value="dogs"/></li>
          <li>訪問Set中某個(gè)元素:<s:property value="dogs[1]"/></li>
          <li>訪問Map:<s:property value="dogMap"/></li>
          <li>訪問Map中某個(gè)元素:<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集合中開頭的一個(gè) --><li>
          投影:<s:property value="users.{$#this.age>1}.{age}"/></li><!-- age>1集合中結(jié)尾的一個(gè) --><li>
          投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li><!-- 獲取的集合是否為空  -->


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

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(5)

          隨筆分類(94)

          隨筆檔案(93)

          文章分類(5)

          文章檔案(5)

          相冊(cè)

          JAVA之橋

          SQL之音

          兄弟之窗

          常用工具下載

          積分與排名

          最新評(píng)論

          閱讀排行榜

          主站蜘蛛池模板: 蓬莱市| 开远市| 洪湖市| 博野县| 嘉善县| 铁力市| 出国| 丹阳市| 通州区| 林周县| 铁岭县| 和平县| 石阡县| 河西区| 通河县| 济宁市| 鹰潭市| 昭觉县| 重庆市| 江阴市| 鹤岗市| 中西区| 湘潭市| 呼和浩特市| 阿城市| 迁安市| 锦屏县| 新丰县| 吉林市| 石柱| 宜章县| 鄂尔多斯市| 兴义市| 石河子市| 拉萨市| 安国市| 厦门市| 贡嘎县| 沙河市| 法库县| 宜黄县|