1. 程式人生 > >struts2值棧存取數據小結(使用ognl表達式)

struts2值棧存取數據小結(使用ognl表達式)

color idt 直接 com ble per 小結 如果 ges

前言:使用ognl和struts2標簽庫的時候要在 jsp頁面 中 加入這麽一行

<%@ taglib uri="/struts-tags" prefix="s" %>

struts(統一格式):

        <action name="ognl" class="com.demo.test1.OnglAction" method="ognl1">
            <result name="ognl1" >/OnglPage.jsp</result>
        </action>

User(統一用一個User):

public class User {
    String username;
    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; } }

===============================================================================================================================================================

一、直接向值棧中存放數據

action:

    /**
     * 一、直接以鍵值對的形式設置(創建)值棧stack
     * @return
     */
    public String ognl1(){
        ValueStack stack 
= ActionContext.getContext().getValueStack(); stack.set("username", "name1");//創建一個值棧的key stack.setValue("username", "name2");//對已有的值棧的value進行修改 return "ognl1"; }

jsp:

 直接以鍵值對的形式設置(創建)值棧stack:<br>
    <s:property value="username"/> <br>

就可以在jsp頁面中看到 name2

================================================================================================================================================================

二、向值棧中存放對象

action:

    /**
     * 二、存儲對象
     *     1、聲明user
     *     2、創建getUser方法
     *     3、設置user實例的屬性值
     * 創建user實例的時候就已經放進了值棧中
     */
    User user;
    public User getUser() {
        return user;
    }
    public String ognl2(){
        user=new User();
        user.setUsername("張三");
        user.setPassword("123456");
        return "ognl2";
    }

jsp:

    向值棧中存放對象並顯示:<br>
    <s:property value="user.username"/><br>
    <s:property value="user.password"/>

================================================================================================================================================================

三、值棧中存放list集合

action:

    /**
     * 三、值棧中存放list集合
     */
    //獲得user和list實例
    User user1=new User();
    User user2=new User();
    User user3=new User();
    ArrayList<User> list=new ArrayList<User>();
    //獲得get方法
    public User getUser1() {
        return user1;
    }
    public User getUser2() {
        return user2;
    }
    public User getUser3() {
        return user3;
    }
    public ArrayList<User> getList() {
        return list;
    }
    public String ognl3(){
        //設置user的值
        user1.setUsername("name1");
        user1.setPassword("pwd1");
        user2.setUsername("name2");
        user2.setPassword("pwd2");
        user3.setUsername("name3");
        user3.setPassword("pwd3");
        //user加入list集合
        list.add(user1);
        list.add(user2);
        list.add(user3);
        return "ognl3";
    }
    

jsp:

  向值棧中存放list:<br>
  <s:property value="list[0].username"/><br>
  <s:property value="list[0].password"/><br>
  list遍歷list取值<!-- 遍歷list方式取值 -->
  <s:iterator value="list" >
      <s:property value="username"/>
      <s:property value="password"/><br>
  </s:iterator>

%使用

1 struts2標簽中表單標簽

1)在struts2標簽裏面使用ognl表達式,如果直接在struts2表單標簽裏面使用ognl表達式不識別,只有%之後才會識別。

技術分享

struts2值棧存取數據小結(使用ognl表達式)