博客
关于我
Struts2-从值栈获取list集合数据(三种方式)
阅读量:518 次
发布时间:2019-03-08

本文共 1889 字,大约阅读时间需要 6 分钟。

创建User封装数据类

在Java开发中,封装数据类是非常常见的做法,可以有效地将数据与业务逻辑分离开来,便于管理和维护。以下是基于JavaBean的规范,创建一个简单的User数据类:

public class User {

private String username;
private String password;

public String getPassword() {      return password;  }  public void setPassword(String password) {      this.password = password;  }  public String getUsername() {      return username;  }  public void setUsername(String username) {      this.username = username;  }

}

创建ValueStackAction逻辑操作类

在Struts框架中,Action类是处理逻辑业务的核心类。值栈(ValueStack)是一种在Struts中用于存储和传递数据的机制,可以用来实现数据的上下文存储和传递。本文将创建一个ValueStackAction用于管理用户数据:

import cn.web.body.User;

import com.opensymphony.xwork2.ActionSupport;
import java.util.ArrayList;
import java.util.List;

public class ValueStackAction extends ActionSupport {

private List
list = new ArrayList
(); public List
getList() { return list; } @Override public String execute() { User user = new User(); user.setUsername("k1"); user.setPassword("hao"); list.add(user); User user1 = new User(); user1.setUsername("k2"); user1.setPassword("zms"); list.add(user1); return "success"; }

}

配置Struts.xml

Struts框架的配置文件用于定义动作和其对应的执行流程。本文中,配置文件的目的是定义一个用户管理的动作,并将执行结果返回给指定的JSP页面:

/WebContent/ValueStack.jsp

第一种方式:创建JSP文件,核心代码如下

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

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

Username:
Password:

第二种方式:使用iterator遍历列表

<%@ taglib prefix="s" uri="/WEB-INFtl/struts-tags.jar" %>

Username:
Password:

第三种方式:使用iterator和变量

<%@ taglib prefix="s" uri="/WEB-INFtl/struts-tags.jar" %>

Username:
Password:

流程说明:通过迭代器遍历的方式,遍历list集合中的每一个User对象,然后进行输出。在第三种方式中,我们使用Context对象

特点:该方式最为常用。遍历值栈list集合,得到每个User对象。这种方式的特点是

  • 不需要使用root来获取数据
  • 可以直接通过写ognl表达式来获取数据
  • 使用#表示context中的数据,提高了数据获取的效率

值栈默认是一个Map实现,里面存储的将是代码中Var属性对应的值与Key的映射关系。这种做法有助于减轻根值栈的压力,提高数据在Context中的存储效率。

转载地址:http://aeuiz.baihongyu.com/

你可能感兴趣的文章
Excuses, Excuses! map的应用
查看>>
搭建nfs服务器练习
查看>>
linux 编译出现的错误
查看>>
如何保证消息队列的高可用?
查看>>
Flutter-Dart version solving failed
查看>>
常见状态码
查看>>
MYISAM存储引擎
查看>>
什么情况必须使用 statement
查看>>
账号转账演示事务
查看>>
idea创建工程时错误提醒的是architectCatalog=internal
查看>>
E - Another Postman Problem FZU - 2038
查看>>
【JavaLearn】 # 培训(一)—— JavaSE查漏补缺
查看>>
SpringBoot找不到@EnableRety注解
查看>>
简易计算器案例
查看>>
在Vue中使用样式——使用内联样式
查看>>
@pathVariable 映射URL绑定的占位符
查看>>
案例:验证用户名是否可用
查看>>
MySQL 高级 - 存储过程 - 函数
查看>>
Find Familiar Service Features in Lightning Experience
查看>>
Explore Optimization
查看>>