运维.售后
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
博客
Blog
ToB门户
了解全球最新的ToB事件
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
javaweb:JSP、JSTL标签和EL表达式
javaweb:JSP、JSTL标签和EL表达式
tsx81429
金牌会员
|
2022-9-4 05:45:53
|
显示全部楼层
|
阅读模式
楼主
主题
930
|
帖子
930
|
积分
2790
据我理解,标签是为了使得jsp内容更加简洁,编写起来更加方便,不用再去在jsp里写大段的java代码,标签就显得与html格外契合;当然,并不是一定要使用标签,只用jsp的语法来写java代码也可以实现功能,只是稍显繁琐。
言归正传,我们在使用标签之前首先需要导入两个依赖
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
复制代码
导入以来之后,我们的标签就可以使用了。
1.JSP标签
常用的JSP标签有三个,分别为
第一个标签是用来进行网页之间的拼接,page里面写入的是需要拼接页面的路径,前面在网页拼接中已经使用过,在此就不再展示效果;
第二个标签是请求转发,page里面写入的是请求转发到的页面的路径;
第三个标签是通常与上面两个标签混合使用,它的作用是携带一些参数,获取这些参数的方法是request.getParameter(String key),接下来我们结合第二个请求转发的标签做一下测试
首先定义两个页面,一个是pa1.jsp,一个是pa2.jsp
pa1.jsp
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ja1</title>
</head>
<body>
<jsp:forward page="ja2.jsp">
<jsp:param value="jms" name="name"/>
<jsp:param value="100" name="age"/>
</jsp:forward>
</body>
</html>
复制代码
pa2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ja2</title>
</head>
<body>
<h1>姓名:<%= request.getParameter("name") %></h1>
<h1>年龄:<%= request.getParameter("age") %></h1>
</body>
</html>
复制代码
我们访问pa1.jsp,看一下能不能请求到pa2.jsp并读取到数据
没有问题。
2.JSTL标签
常用的JSTL标签是核心标签了
第一步:引用核心标签库的语法:,将这一句话加在jsp文件的开头;
我们来说一些常用的标签
(1).和
就还跟程序中的if是一样的,它具有以下三个属性:
test:if的判断条件语句,是必须的;
var:储存条件结果的变量,就是定义一个变量值为true或false,非必须;
scope:var属性的作用域,默认是当前页面(page),非必须;
就是输出语句,也具有三个属性:
value:输出的内容,必须;
default:输出的默认值,默认就是主题内容,非必须;
escapeXml:是否忽略XML特殊字符。默认是true,非必须;
下面我们来看一下这两个标签的实际用法:
建立一个页面coreif.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>coreif</title>
</head>
<body>
<form action="coreif.jsp" method="get">
用户名:<input type="text" name="username" value="${param.username }"><br>
<input type="submit" value="登录"><br>
</form>
<c:if test="${param.username == 'guanliyuan001'}" var="logined">
<c:out value="登陆成功"></c:out>
</c:if>
<c:out value="${logined }"></c:out>
</body>
</html>
复制代码
然后我们输入用户名为“guanliyuan001”再登陆
(2).和
适用于保存数据的标签,它具有五个属性:
var:储存信息的变量;
value:储存的值;
scope:作用域,默认是当前页面(page);
还有两个属性 不常用,在此就不做介绍了。
与java switch语句和if else if else语句功能相似,他还有两个子标签和
具体语法如下:
...
...
...
...
...
下面我们来看一下这两个标签的实际用法:
建立一个页面setchose.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>setchoose</title>
</head>
<body>
<form action="setchoose.jsp" method="get">
成绩<input type="text" name="s" value="${param.s }"><br>
<input type="submit"><br>
</form>
<c:set var="score" value="${param.s }"/>
<c:choose>
<c:when test="${score >= 90 }">
<h1>成绩优秀</h1>
</c:when>
<c:when test="${score >= 80 }">
<h1>成绩良好</h1>
</c:when>
<c:when test="${score >= 70 }">
<h1>成绩一般</h1>
</c:when>
<c:when test="${score >= 60 }">
<h1>成绩及格</h1>
</c:when>
<c:when test="${score >= 0 }">
<h1>成绩不及格</h1>
</c:when>
<c:otherwise>
<h1></h1>
</c:otherwise>
</c:choose>
</body>
</html>
复制代码
(3).
这个标签封装了java的for、while、dowhile循环,它具有以下属性:
属性
描述
是否必要
默认值
items要被循环的信息否无begin开始的元素(0=第一个元素,1=第二个元素)否0end最后一个元素(0=第一个元素,1=第二个元素)否Last elementstep每一次迭代的步长否1var代表当前条目的变量名称否无varStatus代表循环状态的变量名称否无
接下来我们演示以下它的实际用法:
建立一个页面foreach.jsp
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>foreach</title>
</head>
<body>
<%
ArrayList<String> arry = new ArrayList<>();
arry.add("this is 1");
arry.add("this is 2");
arry.add("this is 3");
arry.add("this is 4");
arry.add("this is 5");
request.setAttribute("number", arry);
%>
<c:forEach var = "num" items="${number }">
<c:out value="${num }"/><br>
</c:forEach>
<c:forEach var = "i" begin="1" end="5">
i =<c:out value="${i }"/><br>
</c:forEach>
</body>
</html>
复制代码
3.EL表达式
EL 表达式语法如下:
${EL表达式}
(本文仅作个人学习记录用,如有纰漏,敬请指正)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
tsx81429
金牌会员
这个人很懒什么都没写!
楼主热帖
什么是 SSL、TLS 和 HTTPS?
MySQL 主从复制数据不一致,怎么办? ...
Android修行手册 - SeekBar
Kali Linux三种网络攻击方法总结(DDoS ...
轻量级CI/CD发布部署环境搭建及使用_07 ...
面了个拿 30K 出来的测试,见识到了什 ...
美团大脑百亿级知识图谱的构建及应用进 ...
微信小程序项目实例——体质计算器 ...
数据分析引擎百花齐放,为什么要大力投 ...
2流高手速成记(之五):Springboot整 ...
标签云
存储
服务器
快速回复
返回顶部
返回列表