百木园-与人分享,
就是让自己快乐。

java学习之EL和JSTL

0x00前言

EL和JSTL都是JSP的内容的拓展,都是开发的一些东西,稍微学习记录一下,避免以后忘记

0x01EL

0x1基本用法

概念:Expression language 表达式语言
作用:替换和简化JSP页面中的java代码编写
语法:\\({}
设置忽略EL语法
(1):在page中实现isELIgnored=\"true\"忽略当前所有页面的el表达式
(2):/\\)
{}忽略当前这个el表达式

0x2使用的方法

1.运算:基础的+-*/(加减乘(div)除)都可以实现
还有基础的逻辑运算&&(and )||(or)
比较运算符 <,>,>=,<=,==,!=
空运算符:empty\\({empty list}判断字符串、集合、数组、是否为null和长度为0
2.获取值
语法:\\)
{域对象.键名}
语法2:${键名}从最小的域中去找对于的键值,直到找到为止
域对象:参考前一篇文章中的内置对象中的前4个:pageContext,request,session,application(ServletContext)
pageScope---->pageContext
requestScope--->request
sessionScope--->session
applicationScope--->application(ServletContext)
使用方法:
可以通过把对象存入后直接通过属性的方法获得属性(私有的要设置get和set方法)
也可以通过对象调取方法

<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
  request.setAttribute(\"name\",\"zhangsan\" );
  session.setAttribute(\"name\",\"wangwu\");
%>
${requestScope.name}<br>
${sessionScope.name}
</body>
<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    ELcontent.User user = new ELcontent.User();
    user.setName(\"zhangsan\");
    user.setAge(12);
    user.setBirthday(new Date());
    request.setAttribute(\"zhangsan\",user);
%>
${requestScope.zhangsan.name}
${requestScope.zhangsan.getbitStr()}
</body>
</html>

3.获取list

获取对象、List集合、Map集合的值

1. 对象:${域名称.键名.属性名}
本质上会去调用对象的getter方法

2. List集合:${域名称.键名[索引]}

3. Map集合:

${域名称.键名.key名称}

${域名称.键名[\"key名称\"]}

0x02JSTL

0x1基础用法

1.概念:JavaServer Pages tag LiBRARY JSP标准标签库
由Apache组织提供的开源的免费的jsp标签
2.作用简化和替换JSP上面的java代码
3.使用步骤
(1)导入相关jar包
(2)引入标签库<%@taglib%>
4常用标签:if,choose,foreach

1.if 标签 ,test 必须属性,接受boolean表达式

2. choose:相当于java代码的switch语句
	1. 使用choose标签声明         		相当于switch声明
        2. 使用when标签做判断         		相当于case
        3. 使用otherwise标签做其他情况的声明    	相当于default

3. foreach:相当于java代码的for语句

中间遇到一个方法:一直报错期间发现了一个问题:attribute[test]不接受任何表达式
这是因为版本不兼容的问题

web.xml中版本号不兼容产生的问题;
解决方法:
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core” %>改为
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core_rt” %>

看一下demo和基础用法,

<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>
<%@taglib prefix=\"c\" uri=\"http://java.sun.com/jstl/core_rt\" %>

<html>
<head>
    <title>Title</title>

</head>

<body>
<%
request.setAttribute(\"number\",5);
%>

<c:if test=\"true\"><h1>我是真</h1></c:if>
<c:if test=\"${number % 2 !=0}\">
    ${number}为基数
</c:if>
<c:choose>
    <c:when test=\"${number==1}\">星期一</c:when>
    <c:when test=\"${number==2}\">星期二</c:when>
    <c:when test=\"${number==3}\">星期三</c:when>
    <c:when test=\"${number==4}\">星期四</c:when>
    <c:when test=\"${number==5}\">星期五</c:when>
</c:choose>
<c:forEach begin=\"1\" end=\"10\" var=\"i\" step=\"1\" varStatus=\"s\">
    <h3>begin 开始值</h3>
    <h3>end 结束值</h3>
    <h3>var 临时变量</h3>
    <h3>step 步长</h3>
    <h3>varStatus: 
        index:元素的索引
        count=循环的次数从1开始
    </h3>
    ${i}<br>${s.count}
</c:forEach>

</body>
</html>

0x03总结

本篇学习文章还是比较短,内容比较少主要要记住的是后面EL和JSTL的连用达到简化JSP中java代码,让后面更好操作


来源:https://www.cnblogs.com/0x3e-time/p/16303714.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » java学习之EL和JSTL

相关推荐

  • 暂无文章