原创: JAP君
EL表达式
在讲JSTL标签库之前,我首先给大家讲讲EL表达式,这个对于接触过web开发的人并不陌生。EL表达式全名Expression Language,它的主要目的就是简化JSP中的表达式的方法,让JSP中的代码更加的简化,他可以直接写在JSP页面当中,这样可以减少JSP脚本的编写。
EL表达式是如何从域中取数据呢?
我们用jsp脚本来获取域中的数据:
<%=reque(name)%>
我们再用EL表达式来代替上面的脚本:
${reque}
可以看到我们的代码量是减少了一些,而且可以直接通过“.”来获取数据,EL表达式最主要的作用就是获取四大域中的数据,其格式都是${EL表达式}
例如:
EL获得pageContext域中的值:$ { }
EL获得request域中的值:$ { reque }
EL获得session域中的值:$ { }
EL获得application域中的值:$ { a }
如果你是这么写:$ {key} ,那么它会依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不会再继续向下寻找了。
实例:el.jsp
….
<% ("name","xiaoming");
reque("name","小明");
User user = new User();//IDEA导包快捷键Art+enter u("小花"); u("女"); ("user",user);
List list=new ArrayList<>();
User user1=new User();
u("小强");
u("男");
User user2=new User();
u("小丽");
u("女");
li(user1);
li(user2);
a("list",list); %>
<%=reque("name")%>
<% User user3=(User("user");
String name =u();
out.write(name); %>
<% List list1=(Li("list");
User user4=li(0);
out.write()); %>
${reque}
${}
${a[0].name}
${name}
${u}
${list[0].name}
输出结果:
3
EL的内置对象和执行表达式
- EL的内置对象
获取JSP中域中的数据:pageScope,requestScope,sessionScope,applicationScope
接收参数:param,paramValues
相当于reque() 和 requeValues()
获取请求头信息:header,headerValues
相当于reque(name)
获取全局初始化参数:initParam()
相当于().getInitParameter(name)
web开发中的cookie:cookie
相当于reque() –> cookie.getName() –>cookie.getValue()
web开发中的pageContext:pageContext
pageContext可获得其他八大对象
<%- Created by IntelliJ IDEA. User: Administrator Date: 2018/7/14 Time: 15:33 To change this template use File | Settings | File Templates. –%>
<%@ page contentType="text/html;charset=UTF-8" language="Java" %>
<%– 获取参数 –%>
${}
<%– 主机信息?–%>
${}
2. 执行表达式
${1+1}
${2>1}
${2 eq 2}
${2>1 || 3>2}
${2>1 ? ture:false}
${empty user}
输出结果:
4
JSTL简介
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面当中使用标签的形式完成业务逻辑等功能,JSTL出现的目的和EL是一样的,也是要代替jsp页面中的脚本代码。JSTL标准库有5个子库,但是目前比较常用的还是他的核心库(Core)。
首先,我们需要下载标签库,并且安装在idea当中:
下载地址:
具体的安装教程,这里就不多说,大家可以自行百度一下,非常的简单。
下面我通过一个案例来给大家演示这些标签:
【案例】实现商品列表展示:
P
import zyw.bean.Phone;
import javax.;
import javax.;
import javax.;
import javax.Request;
import javax.Response;
import java.io.IOException;
import java.u;
import java.u;
@WebServlet(name = "PhoneListServlet",urlPatterns = "/phonelist")
public class PhoneListServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse respo nse) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse respon se) throws ServletException, IOException { //通过servlet从数据库中获取数据,我们这里暂时通过手动创建数据 Phone phone=new Phone();//鼠标放在Phone上Alt+Enter快捷键建立Phone类 ("iphone6"); (001); (" 768456/29136988;); ("3900");
Phone phone1=new Phone();
("坚果pro");
(002);
("1799");
(" /209772/32105f74;);
Phone phone2=new Phone();
("vivo x9");
("2345");
(003);
(" 6/231820/750cc50e;);
Phone phone3=new Phone();
("oppo A57");
(004);
("1399");
(" /78285/f6a84203;);
Phone phone4=new Phone();
("诺基亚6");
(005);
("1699");
(" 86027/36a57cc;);
Phone phone5=new Phone();
("小米MIX");
(006);
("3999");
(" /309855/38fe41f1;);
List list=new ArrayList<>();
li(phone);
li(phone1);
li(phone2);
li(phone3);
li(phone4);
li(phone5);
reque("list",list);
reque(";).forward(request,respons e); } }
P
public class Phone {
private int id;
private String name;
private String image;
private String price; //Art+Ins快捷键加入get,set方法 public int getId() { return id;
}
public void setId(int id) { = id; }
public String getName() { return name; }
public void setName(String name) { = name; }
public String getImage() { return image; }
public void setImage(String image) { this.image = image; }
public String getPrice() { return price; }
public void setPrice(String price) { = price; } }
<%–
Created by IntelliJ IDEA.
User: invinjun
Date: 2017/6/16
Time: 16:57
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="; %>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>商品列表</title>
<link rel="stylesheet" href="c; type="text/css" />
<script src="j; type="text/javascript"></script>
<script src="j; type="text/javascript"></script>
<!– 引入自定义css文件 –>
</head>
<body>
<c:forEach items="${list}" var="phone">
<div class="col-md-2" style="height:250px">
<img src="${phone.image}" width="170" height="170" style="display: inline-block;">
</a>
<p>
<a href="; style='color: green'>${}</a>
</p>
<p>
<font color="#FF0000">商城价:¥${}</font>
</p>
</div>
</c:forEach>
</body>
</html>
效果图:
最后,我自己是一名从事了多年开发的Java老程序员,辞职目前在做自己的Java私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的Java学习干货,可以送给每一位喜欢Java的小伙伴,想要获取的可以关注我的头条号并在后台私信我:01,即可免费获取。
1.文章《i phone5支持导入什么格式视屏》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《i phone5支持导入什么格式视屏》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好