-------------------siwuxie095

从值栈获取 List 集合

1、具体步骤

(1)在 Action 中向值栈放 List 集合

(2)在 JSP 页面中从值栈获取 List 集合

2、具体实现

(1)编写实体类

User.java:

package com.siwuxie095.entity;

// User 实体类

public class User {

private String username;

private String password;

private String address;

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;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return "User [username=" + username + ", password=" + password

+ ", address=" + address + "]";

}

}

(2)编写 Action

ListAction.java:

package com.siwuxie095.action;

import java.util.ArrayList;

import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

import com.siwuxie095.entity.User;

public class ListAction extends ActionSupport {

/*

* (1) 在 Action 中定义 List 集合对象

*

* 因为总归是要 new 的,所以就在这里创

* 建,而不是声明了

*/

private List<User> list=new ArrayList<User>();

/*

* (2) 提供 List 集合对象的 get 方法即可

*/

public List<User> getList() {

return list;

}

@Override

public String execute() throws Exception {

/*

* 如果上面仅仅是声明了List 集合对象,

* 那么就要在这里创建,即 new 出来

*/

/*

* (3) 在执行的方法中,向 List 集合对象中设置值

*/

User user1=new User();

user1.setUsername("小白");

user1.setPassword("8888");

user1.setAddress("中国");

User user2=new User();

user2.setUsername("小黑");

user2.setPassword("4444");

user2.setAddress("美国");

list.add(user1);

list.add(user2);

return SUCCESS;

}

}

(3)配置 Action

struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<package name="demo" extends="struts-default" namespace="/">

<action name="list" class="com.siwuxie095.action.ListAction">

<result name="success">/list.jsp</result>

</action>

</package>

</struts>

(4)编写页面

从值栈获取 List 集合的方式共有三种

1)方式一

list.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!-- 引入 Struts2 标签库 -->

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>List</title>

</head>

<body>

<!-- 获取值栈中 List 集合的数据 -->

<s:property value="list[0].username"></s:property>

<s:property value="list[0].password"></s:property>

<s:property value="list[0].address"></s:property>

<br/>

<s:property value="list[1].username"></s:property>

<s:property value="list[1].password"></s:property>

<s:property value="list[1].address"></s:property>

</body>

</html>

2)方式二

list.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!-- 引入 Struts2 标签库 -->

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>List</title>

</head>

<body>

<!-- 获取值栈中 List 集合的数据 -->

<s:iterator value="list">

<!-- 遍历 List 集合,得到其中的每个 User 对象 -->

<s:property value="username"></s:property>

<s:property value="password"></s:property>

<s:property value="address"></s:property>

<br/>

</s:iterator>

</body>

</html>

3)方式三

list.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!-- 引入 Struts2 标签库 -->

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>List</title>

</head>

<body>

<!-- 获取值栈中 List 集合的数据 -->

<s:iterator value="list" var="user">

<!--

遍历 List 集合,得到其中的每个 User 对象

优化机制:把每次遍历出来的 User 对象,放

到 context 中,变成对象引用,再取出

在写 OGNL 表达式时,需要使用特殊符号 #

-->

<s:property value="#user.username"></s:property>

<s:property value="#user.password"></s:property>

<s:property value="#user.address"></s:property>

<br/>

</s:iterator>

</body>

</html>

(5)访问路径

http://localhost:8080/工程名/list.action

【made by siwuxie095】

从值栈获取List集合的更多相关文章

  1. Struts2-从值栈获取list集合数据(三种方式)

    创建User封装数据类 public class User { private String username; private String password; public String getP ...

  2. Struts2_day03--从值栈获取数据_EL表达式获取值栈数据(为什么)

    从值栈获取数据 1 使用struts2的标签+ognl表达式获取值栈数据 (1)<s:property value=”ognl表达式”/> 获取字符串 1 向值栈放字符串 2 在jsp使用 ...

  3. 向值栈放List集合

    ------------------siwuxie095 向值栈放 List 集合 1.具体步骤 (1)在 Action 中定义 List 集合对象 (2)提供 List 集合对象的 get 方法 ( ...

  4. Struts2-从值栈中获取数据-EL表达式从值栈获取

    从值栈获取数据 1 使用struts2的标签+ognl表达式获取值栈数据 (1)<s:property value=”ognl表达式”/> 获取字符串

  5. Struts2_day03--课程安排_OGNL概述入门_什么是值栈_获取值栈对象_值栈内部结构

    Struts2_day03 上节内容 今天内容 OGNL概述 OGNL入门案例 什么是值栈 获取值栈对象 值栈内部结构 向值栈放数据 向值栈放对象 向值栈放list集合 从值栈获取数据 获取字符串 获 ...

  6. EL表达式获取值栈数据

    ---------------------siwuxie095 EL 表达式获取值栈数据 1.导入 JSTL 相关包,下载链接: (1)http://tomcat.apache.org/taglibs ...

  7. 获取set()和push()方法向值栈放的数据

    ------------------siwuxie095 获取 set() 方法向值栈放的数据 1.具体步骤 (1)在 Action 中使用 set() 方法向值栈放数据 (2)在 JSP 页面中从值 ...

  8. [ SSH框架 ] Struts2框架学习之三(OGNl和ValueStack值栈学习)

    一.OGNL概述 1.1 什么是OGNL OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可 ...

  9. struts2第三天——值栈

    大致内容: ognl概述 ognl入门 值栈 一.OGNL概述 OGNL,全称为Object-Graph Navigation Language,对象图导航语言 它是一个功能强大的表达式语言,用来获取 ...

随机推荐

  1. 转:Android-apt

    转自http://blog.csdn.net/zjbpku/article/details/22976291 What is this? The Android-apt plugin assists ...

  2. 第30课 C语言中的字符串

    任意的软件开发过程都会涉及到字符串,字符串的概念: ca是字符数组,其他几个都是字符串,因为最后都有'\0'. 示例程序如下: #include <stdio.h> int main() ...

  3. 关于ppt的字体(转载)

    壹文钱:教程(13)——字体篇(上) 2015-11-25 @嘉文钱 幻方秋叶PPT 前三期嘉文给大家说了颜色,想复习的童鞋,链接在此: 壹文钱:教程(10)——色色,你好! 壹文钱:教程(11)—— ...

  4. (简单)冒泡和直接选择排序同时调用swap算法

    void swap(int &a , int &b) { int temp; temp = a; a=b; b=temp; } void bubble(int a[],int n) { ...

  5. USB gadget学习笔记

    1.usb-OTG-ADP-HNP-SRP https://blog.csdn.net/xiongjiao0610/article/details/44150849

  6. poj3311 经典tsp问题

    题目的大概意思就是一个人到一些城市送披萨,要求找到一条路径可以遍历每个城市后返回出发点,而且路径距离最短.最后输出最短距离就可以. 注意:每个城市可反复訪问多次. 因为题中明白说了两个城市间的直接可达 ...

  7. [LeetCode系列] 变序词查找问题(Anagrams)

    给定一系列词, 找出其中所有的变序词组合. Note: 变序词 - 组成字符完全相同但次序不同的单词. 如dog和god, ate和eat. 算法描述: 使用map<string, vector ...

  8. ffmpeg 从内存中读取数据(或将数据输出到内存)(转)

    更新记录(2014.7.24): 1.为了使本文更通俗易懂,更新了部分内容,将例子改为从内存中打开. 2.增加了将数据输出到内存的方法. 从内存中读取数据 ffmpeg一般情况下支持打开一个本地文件, ...

  9. spark on es 多索引查询

    核心接口 trait SparkOnEsService { val conf = new SparkConf // conf.setMaster("local[10]") val ...

  10. "废物利用"也抄袭——“完全”DIY"绘图仪"<三、上位机程序设计>

    上位机的程序主要是解析图片和生成较好的代码,现在实现的功能有灰度打印,二值打印,轮廓打印,骨骼打印.当然,必不可少的是打印大小的控制.测试了一些图片,总体来说,打印速度依次加快,因为打印的内容依次减少 ...