zoukankan      html  css  js  c++  java
  • EL表达式获取值栈数据

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

       

       

       

       

       

       

       

       

    EL 表达式获取值栈数据

       

       

    1、导入 JSTL 相关包,下载链接:

       

    1http://tomcat.apache.org/taglibs/standard/

       

    2http://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】

  • 相关阅读:
    Java服务,内存OOM了,如何快速定位?
    Java内存分析工具MAT(Memory Analyzer Tool)安装使用实例
    jmap使用方法及原理
    可能发生Full gc 的情况
    java--jvm GC-常用参数配置
    JVM. GC 性能调优方法与思路
    《嫌疑人X的献身》——两个天才之间的思想火花
    爱的纯粹与代价
    18年下半年计划表
    阿里校招准备-总纲
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/7358840.html
Copyright © 2011-2022 走看看