-------------------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. ThinkTemplate模板引擎的设计和使用方法

    在PHP开发的过程中,我们会接触到很多的模板引擎,包括FastTemplate.SmartTemplate.Smarty.tinybutstrong等,通常都是为了满足MVC开发模式的表现层需要,让显 ...

  2. ssh的时候提示No user exists for uid 501

    原来是oh my zash升级导致的.关闭iterm2然后重新打开iterm2就可以了

  3. Jmeter 接口测试间的引用

    Jmeter做接口测试,几乎里面所有的业务实现都依赖登录,我竟然傻不垃圾的每个CASE都写了登录  ......请原谅我的笨 右键 线程组 --> 添加  --> 逻辑控制器 --> ...

  4. laravel 创建自定义全局函数

    全局函数的实现是依靠在初始化的时候,将helps.php或者functions.php直接进行了加载.而Laravel中bootstrap/autoload.php(laravel 5.5 貌似没有这 ...

  5. (经典)直接插入排序based on 二分查找

    #include<stdio.h> // 查找第一个大于key的元素,成功则返回该元素的下标,否则返回数组末元素的下一位 int findFirstLarger(int A[],int n ...

  6. UVA之1121 - Subsequence

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/SunnyYoona/article/details/25840365 [题目] A sequence ...

  7. RabbitMQ消息队列安装

    [root@VM_119_179_centos ~]# rpm -ivh erlang-19.0.4-1.el6.x86_64.rpm [root@VM_119_179_centos ~]# rpm ...

  8. Java的序列化算法--解释序列后字节含义

    Java的序列化算法 序列化算法一般会按步骤做如下事情: ◆将对象实例相关的类元数据输出. ◆递归地输出类的超类描述直到不再有超类. ◆类元数据完了以后,开始从最顶层的超类开始输出对象实例的实际数据值 ...

  9. html5播放mp4视频代码

    1.nginx支持flv和mp4格式播放 默认yum安装nginx centos7安装nginx时候应该是默认安装nginx_mod_h264_streaming模块的 # nginx -V查看是否安 ...

  10. mysql-7事务管理

    1.事务的使用场景 mysql事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人愿,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数 ...