struts2值棧存取數據小結(使用ognl表達式)
前言:使用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表達式)