栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSTL表达式的理解和使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSTL表达式的理解和使用

这里写目录标题
  • 作用
  • 使用方式
  • 单条件判断
  • 案例
  • 多条件判断
  • 循环标签
  • 打印99乘法表
  • 案例

JSP中可以使用EL表达式取出域对象中的数据, 但是仍然避免不了还是要在页面中书写一些java代码(如: 集合的遍历), 处理比较繁琐, 且代码不容易维护

使用需要添加两个jar包

作用

开发人员可以利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序的做法,以提高程序的阅读性、维护性和方便性。在jstl中, 提供了多套标签库, 用于方便在jsp中完成或简化相关操作

使用方式

需要在项目中导入jstl-1.2.jar ,jstl在后台由java代码编写, jsp页面中通过标签进行使用, 使用标签时, 会自动调用后台的java方法(jar包中的方法)

2)标签库的引入语法格式
<%@ taglib uri=“标签库的定位” prefix=“前缀(简称)” %>
一般都是使用语法之后自动引入



<%--向四个域中放入数据   setAttribute--%>
  
  
  
  
  <%--从四个域中取出数据  getAttribute--%>
  ${pageScope.msg}
  ${requestScope.msg}
  ${sessionScope.msg}
  ${applicationScope.msg}
  
<%--c remove 移除指定域中的数据的 removeAttribute --%>
<%--c out 输出标签中取出的域对象中的数据 --%>
单条件判断
<%--
test 相当于 if(判断条件)
var  判断条件的结果 保存到域对象中 数据的名称
scope 控制操作的域
--%>

满足条件执行

案例

<%
pageContext.setAttribute("score",99);
%>
分数:${score} 级别:
A
B
C
D
E
多条件判断

    
       满足条件执行
    
       不满足上述when条件时执行
    


    A
    B
    C
    D
    E

循环标签
<%--相当于for循环--%>
var: 迭代变量
begin: 迭代起始值 
end: 迭代结束值 
step: 迭代变量变化的步长

...

<%--相当于for each循环--%>
var: 迭代变量
items: 集合

...

<%--特殊字符串, 按照指定的分隔符, 分割遍历--%>

...


<%--打印99乘法表--%>

    
        ${j} * ${i} = ${j*i}
    
    


增强循环


打印99乘法表
<%--打印99乘法表--%>

    
        ${j} * ${i} = ${j*i}
    
    
案例
<%@page import="java.sql.Date"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.bjsxt.pojo.Employee" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>


    My JSP 'jstlel.jsp' starting page



<%
    
    int n=70;//基本类型
    double avgScore = 99.45678;//基本类型
    Employee emp=new Employee();//引用类型
    emp.setEid(1);
    emp.setEname("张晓红");
    emp.setBirth(Date.valueOf("1999-12-12"));
    String [] strs = {"Java","Oracle","JSP","HTML"};//数组
    String courses="Java,Oracle,JSP,HTML,Servlet";//特殊的字符串
    String courses2="Java#Oracle#JSP#HTML#Servlet";//特殊的字符串
    String str = null;
    String str3 = "";
    List list = new ArrayList();//分配空间,没有元素
    list.add(90);
    list.add(80);
    List list2 =null;//没有分配空间
    List list3 =new ArrayList();//分配空间,没有元素  size()==0
    Map map = new HashMap();//Map
    map.put("cn", "China");
    map.put("fr", "France");
    //setAttribute
    request.setAttribute("n",n);
    request.setAttribute("avgScore",avgScore);
    request.setAttribute("emp",emp);
    request.setAttribute("strs",strs);
    request.setAttribute("courses",courses);
    request.setAttribute("courses2",courses2);
    request.setAttribute("now",new java.util.Date());
    request.setAttribute("list", list);
    request.setAttribute("list2", list2);
    request.setAttribute("list3", list3);
    request.setAttribute("map", map);
    request.setAttribute("str", str);
    request.setAttribute("str3", str3);
%>

//2.使用JSTL和EL输出

JSTL和EL标签的使用

n:${requestScope.n}
avgScore:${requestScope.avgScore}
<%--如果分数 90-100 A 80-90 B 80--C --%> A B C
<%--if()..else if()...else{}--%> A B C D
分数:
姓名:${requestScope.emp.ename}
日期:${requestScope.emp.birth}
日期:
${s}-->${vs.index}--->${vs.count}

<%--如果字符串是按照逗号进行分割时候,就这种情况是可以直接进行遍历的--%> ${s}--->
${s}--->
<%--进行特殊字符串的分割--%> ${s}--->
${m.key}--->${m.value}
请选择每页显示的条数:
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462252.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号