EL表达式获取值栈数据
---------------------siwuxie095
EL 表达式获取值栈数据
1、导入 JSTL 相关包,下载链接:
(1)http://tomcat.apache.org/taglibs/standard/
(2)http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
2、使用 JSTL 标签 + EL 表达式 获取值栈数据
3、具体实现
(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.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 引入 JSTL 标签库 --> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!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> <!-- 使用 JSTL 标签 + EL 表达式获取值栈中 List 集合的数据 --> <c:forEach items="${list }" var="user"> ${user.username } ${user.password } ${user.address } <br/> </c:forEach> </body> </html> |
(5)访问路径
http://localhost:8080/工程名/list.action
为什么 EL 表达式能获取值栈数据
1、EL 表达式本身是用于获取域对象中的值
2、域对象中值的存取
(1)向域对象中放值使用 setAttribute() 方法
(2)从域对象中获取值使用 getAttribute() 方法
3、Struts2 底层增强了 Request 对象的 getAttribute() 方法
该增强是在 Struts2 核心过滤器的 doFilter() 方法中做的,在
其中调用 wrapRequest() 方法
4、从 Request 域中获取值
(1)如果能获取到,直接返回
(2)如果获取不到,会到值栈中把值获取出来,放到域对象中
5、查看源代码
(1)
(2)
(3)
(4)
6、不建议使用 EL 表达式获取值栈数据(性能低下)
【made by siwuxie095】
EL表达式获取值栈数据的更多相关文章
- Struts2_day03--从值栈获取数据_EL表达式获取值栈数据(为什么)
从值栈获取数据 1 使用struts2的标签+ognl表达式获取值栈数据 (1)<s:property value=”ognl表达式”/> 获取字符串 1 向值栈放字符串 2 在jsp使用 ...
- Struts2-使用forEach标签+el标签获取值栈数据
import cn.web.body.User; import com.opensymphony.xwork2.ActionSupport; import java.util.ArrayList; i ...
- Struts2-从值栈中获取数据-EL表达式从值栈获取
从值栈获取数据 1 使用struts2的标签+ognl表达式获取值栈数据 (1)<s:property value=”ognl表达式”/> 获取字符串
- Struts2-EL表达式为什么能获取值栈数据
1.EL表达式能获取域对象值 2.向域对象里面放值使用setAttribute方法,获取使用getAttribute方法 3.底层增强request对象里面的方法getAttribute方法 (1)首 ...
- 如何在两个jsp页面之间传值,在另外一个页面用EL表达式获取值
第一个jsp页面 <% String ids=request.getParameter("id"); int id=Integer.parseInt(ids); %> ...
- javascript中使用el表达式获取不到数据问题
我们通常会在jsp里面使用el表达式,把需要的值传递给 javascript 方法,例如: <p onclick="doSomething(${param})">< ...
- Struts2_day03--课程安排_OGNL概述入门_什么是值栈_获取值栈对象_值栈内部结构
Struts2_day03 上节内容 今天内容 OGNL概述 OGNL入门案例 什么是值栈 获取值栈对象 值栈内部结构 向值栈放数据 向值栈放对象 向值栈放list集合 从值栈获取数据 获取字符串 获 ...
- EL表达式获取数据
EL 全名为Expression Language. EL主要作用 获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web域 ...
- 【JSP EL】<c:if> <c:foreach >EL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值
1.EL表达式 获取list长度 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" ...
随机推荐
- ThinkTemplate模板引擎的设计和使用方法
在PHP开发的过程中,我们会接触到很多的模板引擎,包括FastTemplate.SmartTemplate.Smarty.tinybutstrong等,通常都是为了满足MVC开发模式的表现层需要,让显 ...
- iOS-----使用AddressBookUI管理联系人
使用AddressBookUI管理联系人 iOS SDK为管理地址簿提供的视图控制器位于AddressBookUI框架内.总结来说,AddressBookUI框架提供了如下特殊的视图控制器. ABPe ...
- Ubuntu系统安装,适用于14.04,16.04和17.10
本文以14.04为案例进行安装,其他版本相关问题会做注解 1.选择要安装的系统语言 本界面建议选择English,之后再选择中文安装 注意: 安装服务器版时,对于14.x版本第一步选择中文没有问题,但 ...
- LambdaMART简介——基于Ranklib源码(一 lambda计算)
学习Machine Learning,阅读文献,看各种数学公式的推导,其实是一件很枯燥的事情.有的时候即使理解了数学推导过程,也仍然会一知半解,离自己写程序实现,似乎还有一道鸿沟.所幸的是,现在很多主 ...
- 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 20165222李勖
1.系统运行监控 (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件,综述一下分析结果.目标就是找出所有连网的程序,连了哪里,大约干了什么( ...
- Java编程之Date的相关操作
一:讲字符串的时间格式数据转换成时间对象 //将字符串的时间数据,转换成时间 String dateString="2007-12-12"; DateFormat date=new ...
- timesacledb 测试demo数据运行
timesacledb 的安装还是使用docker,对于测试数据需要提前下载 启动timesacledb 使用支持gis 的镜像,后边需要使用 docker run -d --name timesca ...
- Rails Cookie和session使用
Rails通过cookies方法来操作cookie.这和session的操作有点相似 class CommentsController < ApplicationController def n ...
- 有些文件不需要配置,只需要放到resources下面
今天和一位同事探讨了一个问题,开始的时候我事先的读取某个映射文件是配置在applicationContext.xml的bean定义里面:但是他提出来,是否可以不需要配置呢?直接作为一个资源文件完事,这 ...
- sdk manager 代理,解决下载速度慢的问题
原文:http://blog.csdn.net/android_panda/article/details/18598883 地址:mirrors.neusoft.edu.cn 端口:80 要勾选:F ...