简单又实用的EL和JSTL

news/2024/5/18 13:31:15 标签: JSTL, EL, javaweb, EL数据计算

EL

EL是JSP简化表达式,说明白就是简化代码

标志为:${ },花括号中可以添加常量,变量,表达式,变量属性值等等


比较常用的是:判断是否为空

${empty ~},~处加上变量,空的话返回true


获取数据

①获取提交的表单的数据:接收表单的一方如果是一个值可以用${param. ~},~处为表单中标签的name;

多个值可以用${paramValues.~},~处为表单中标签的name数组,例如name[0],name[1].

②获取jsp通讯隐式对象的数据:${requestScope. ~}

以我的感觉来说,这种方法感觉是基于jsp隐式对象的属性使用的。上面这些只是最常用的。


EL获取的数据进行计算

value1与value2相乘:${value1*value2}


JSTL

JSTL要比EL要复杂,但肯定比EL的功能多,一般与EL结合使用,在用之前,要先导入JSTL的标签库:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
①c:out

<c:out value="value" escapeXml="true/false" default="defauleValue" />
<!-- value表示要输出什么内容,常量变量均可;escapeXml表示是否将
value的内容转义;
default表示value中没有值的时候输入什么。后两个属性可以不写-->

②c:set

<c:set value="zwq" var="name" />
<c:out value="${name}"/>
<!-- c:set类似于键值对,var是键,value是值;第二句是输出name的值-->

③c:remove

写法太简单了,就是c:set中的键值对去掉

作用是删除通讯对象中的属性
④c:if和c:choose

<c:if test="~" var="~">zwq</c:if>
<!-- test中放条件表达式,var中放判断的值的键,test中是true的话
输出zwq。
c:choose类似于switch不想多说。这两个东西感觉不太常用
-->

⑤(重点的来啦,个人感觉这是JSTL最好用的一个)
c:forEach:

<table border="1" bordercolor="red">
        <tr>
            <td>行号</td>
            <td>数值</td>
            <td>结果</td>
        </tr>
        <!-- 这里的var与前面的不同,在这里的作用是在<c:forEach>中使用,varStatus从我的感觉来说,是每一行的一个标记;
        关于step、begin和end,举个例子 for(int begin=0;begin<=end;begin=begin+step){...} -->
        <c:forEach var="x" varStatus="status" step="2" begin="0" end="10">
            <tr>
                <td><c:out value="${status.count }"></c:out></td>
                <td><c:out value="${x }"></c:out>
                </td>
                <td><c:out value="${x*x }"></c:out></td>
            </tr>
        </c:forEach>
    </table>

还有另外一种用法:

<%
        List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();

        for (int i = 0; i < 3; i++) {
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("z", i + "");
            list.add(map);
        }
        request.setAttribute("zwq", list);
%>      
        <!--  items是给c:forEach,一个list生成列表;这里也可以看出var到底有什么用,不多说自己体会吧。
        只要有键值对,它就能自动生成列表,你说好用不好用 -->
    <c:forEach items="${zwq }" var="zwq">
        &nbsp;<c:out value="${zwq.z }"></c:out>
        </br>
    </c:forEach>

现在感觉网页也不是想象中的那么无聊嘛~~


http://www.niftyadmin.cn/n/897527.html

相关文章

对JavaScript和CSS的个人理解

纯粹是个人学习过程中的一点体会&#xff0c;有可能有些地方不严谨&#xff0c;请谨慎阅读&#xff01;&#xff01; ①JavaScript是让java在网页中使用&#xff0c;语法和java基本符合&#xff0c;标志是< javascript>&#xff0c;我觉得最大的不同就是声明变量的时候只…

数据库序列( SEQUENCE)的使用

在Oracle中&#xff0c;没有自增的功能&#xff0c;例如id自增。如果去加过多的代码去算id又不值得&#xff0c;所以使用序列就是一个很好的选择 create SEQUENCE zwq_seq INCREMENT BY 1; 创建一个名为 zwq_seq的序列&#xff0c;自增1 注意序列才创建时第一次…

理解C++虚函数

1、 简单介绍 C虚函数是定义在基类中的函数&#xff0c;子类必须对其进行覆盖。在类中声明&#xff08;无函数体的形式叫做声明&#xff09;虚函数的格式如下&#xff1a; virtual void display(); 2、虚函数的作用 虚函数有两大作用&#xff1a; &#xff08;1&#xff0…

数据库中的各种约束以及对约束的操作

个人觉得外键是最难理解的一个也是重点&#xff1a; 直接上例子&#xff1a; create table t_group ( id int not null, name varchar(30), primary key (id) ); insert into t_group values (1, Group1); insert into t_group values (2, Group2); create tab…

android利用xmpp进行即时通信

简单介绍&#xff1a;什么是即时通信&#xff1f;类似于QQ聊天一样&#xff0c;不对&#xff0c;介绍理论不是我的风格&#xff0c;直接进入主题&#xff01; 现在比较常用的软件是OpenFire做服务器&#xff0c;Spark做测试客户端&#xff08;这是通用的&#xff0c;也有的公司…

Java类、方法与接口

类与方法的声明类的组成方法的组成类与方法的小例子如何声明一个对象并调用方法实参与形参的区别形参在声明方法时使用用来存放实参实参在调用方法使用将数据赋给形参的意思为调用 构造方法方法重载方法的继承继承中有一个比较重要的默认执行过程 this和super最终类final和抽象…

通过jdbc实现对数据库中数据的增删查改操作

###原始的东西该理解还是要理解 需要一个连接数据库的jar包&#xff08;这里用的是MySQL&#xff09;&#xff1a; http://download.csdn.net/detail/zhengyikuangge/9406895 直接上代码&#xff1a; public class ValueDao {public String DRIVER "com.mysql.jdbc.Dr…

HTML和JAVA之子——jsp

JSP继承了java的语句和html的标签 JSP全称为Java Server Pages&#xff0c;即网页前台显示所使用的技术 例如从数据库调取多行数据&#xff0c;可以用jsp方便地显示 用myeclipse新建一个jsp文件&#xff1a; <!--这是HTML的注释 --> <%--这是JSP的注释 --%> <…