在JSP中如何使用EL表达式循环的输出HaspMap中的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JSP中如何使用EL表达式循环的输出HaspMap中的数据?相关的知识,希望对你有一定的参考价值。

情况是这样的:打个比方讲有两个JSP页面a和b;在a中用Session保存了一个HashMap类型的数据;在b页面中;再将所保存的HashMap对象取出来,然后用EL表达式读取出来(总之就是一个数据传递与读取)。但是在b页面我们应该怎样用EL代码循环读取出来呢?要求键-值相互对应。在a中代码为:session.setAttribute("map",haspmap);在b中代码为:<tag:var="map" value="$sessionScope.map";<tag:forEach var="mapitem"  items="$??????";在循环的?号出 该怎么写才好?     

<c:forEach items="$map1" var="i">
$i.key
$i.value
</c:forEach>

items="$??????" 你在session或者request中保存的key是什么,这里就填什么啊,你放到session的时候,取值map,那这里就填map了
参考技术A 1。jsp放在scope中.通过struts转发到2。jsp. 在2。jsp中EL表达式即可

jsp中的EL表达式

[1] 简介
     > JSP表达式 <%= %> 用于向页面中输出一个对象。
    > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段。
    > 使用EL表达式来代替JSP表达式 ,使用JSTL标签来代替JSP脚本片段。
    > EL表达式用来向页面输出内容

getAttribute();//四个域对象都可以使用//作用不是接收请求参数,在使用getAttribute方法之前必须先使用setAttribute()将属性对方法域对象中;返回Object类型!

getParameter()://仅仅是request使用!用于接收请求参数【url,form表单中】;返回值String类型

[2] 基本语法
    > ${表达式}
    > EL表达式可以从域中获取属性。
    - 使用 ${属性名}
    - 如果只填写一个属性名,EL表达式会自动做全域查找。(所谓的全域查找,就是按照page request session application四个域范围内分别,找到就返回属性,如果没找到什么都       不返还。 )

    - 我们还可以指定去哪个域查找:   pageScope;requestScope;sessionScope;applicationScope。

    - 例子    查找request中属性

        ${requestScope.属性名}
    查找session中的属性
        ${sessionScope.属性名}

    - 注意:EL表达式只能获取域中的属性
    EL表达式不能直接调用对象的方法

    - 通过EL表达式读取对象的属性时,只需要${对象.属性名}
    EL表达式会自动调用对象的对应的getter方法,通过将属性名首字母大写,然后加上一个get

    注意:只要有属性,就可以一直点下去,也就说对象的属性是对象的话,我们也可以通过对象的属性的属性的方式调用!

    - 当读取一些名字比较特殊的属性时,这种特殊值必须要指定域,例如属性名带-:
    ${requestScope[‘属性名‘]}

[3] 隐含对象
    > EL中一共有11个内置对象。
    - pageContext
    类型 PageContext
    它和JSP中pageContext是一个东西
    作用 可以获取到JSP中其他的隐含对象

    例如:可以获取项目名:
    ${pageContext.request.contextPath }


    - pageScope
    类型:Map<String,Object>
    代表:page域中的属性
    作用:可以获取到page域中的属性

    - requestScope
    类型:Map<String,Object>
    代表:request域中的属性
    作用:可以获取到request域中的属性

    - sessionScope
    类型:Map<String,Object>
    代表:session域中的属性
    作用:可以获取到session域中的属性

    - applicatScope
    类型:Map<String,Object>
    代表:application域中的属性
    作用:可以获取到application域中的属性

    - param
    类型: Map<String , String>
    代表:用户发送的请求参数
    作用:可以获取请求参数
    用法: ${param.参数名}

    - paramValues
    类型:Map<String , String[]>
    代表:一个请求参数对应的多个值
    用法: ${paramValues.参数名[索引]}

    - header
    作用:可以获取到用户发送的请求头
    类型:Map<String , String>
    例如:获取用户的系统信息 ${header[‘User-Agent‘]}

     - headerValues
    类型: Map<String , String[]>
    作用:可以获取一个头的多个值

     - initParam;
    类型:Map<String , String>
    作用:获取整个WEB应用的初始化参数

     - cookie
    类型:Map<String , Cookie>
    作用:用来获取Cookie

[4] 运算
    > 在EL中可以直接使用运算符进行运算。
    > 在EL中可以使用Empty元素符:
    如果值为null , empty则返回 true
    如果为空串, 则返回 true
    空的集合 返回true
    > 所以empty元素符经常用来判断集合或者字符串是否为空





























































































以上是关于在JSP中如何使用EL表达式循环的输出HaspMap中的数据?的主要内容,如果未能解决你的问题,请参考以下文章

jsp中el表达式如何获取当前输入框的值?

EL表达式

Jsp入门EL表达式_学习笔记

jsp中的EL表达式

JSP ELEL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值

EL——表达式概述运算内置对象