JavaWeb JSP标签 JSTL标签

1.JSP标签

JSP(JavaServer Pages)标签是用于在JSP页面中插入Java代码和动态内容的特殊标记。

常用的JSP标签:

<% ... %>:JSP脚本标签,用于插入Java代码块。

 <%= ... %>:JSP表达式标签,用于在页面中输出Java表达式的结果。

<%@ ... %>:JSP指令标签,用于指定页面的属性和配置信息,例如导入Java类、设置页面的编码等。

<jsp:include>:用于在当前页面中包含其他页面或文件。

<jsp:forward>:用于将请求转发到其他页面或URL。

使用forward:

<jsp:forward page = "d2.jsp"/>

也可以在转发的时候携带参数:

<jsp:forward page = "d2.jsp">
<jsp:param name = "name" value = "Freya"/>
<jsp:param name = "mood" value = "awesome"/>
</jsp:forward>

然后在转发过去的页面接收参数:

<%= request.getParameter("name") %>
<%= request.getParameter("mood") %>

2.JSTL标签

JSTL标签的出现为了弥补HTML的不足,这些标签的功能和java代码一样。使用JSTL可以使JSP页面的代码更加简洁、易读和可维护。

JSTL(JSP Standard Tag Library)是一个标准的JSP标签库,为JSP页面提供了一组可重用的标签和函数,用于简化和增强JSP页面的开发。

它由一组自定义标签和函数组成,可以用于处理逻辑、控制流程、格式化数据、访问数据库等常见的任务。

JSTL提供了以下几个主要的标签库:

  • Core标签库(`<c:>`):提供了一些基本的标签,用于控制流程、迭代、条件判断等。
  • Formatting标签库(`<fmt:>`):提供了一些标签,用于格式化日期、时间、数字等数据。
  • SQL标签库(`<sql:>`):提供了一些标签,用于执行SQL查询和操作数据库。
  • XML标签库(`<x:>`):提供了一些标签,用于处理XML文档和数据。

3.JSTL标签的使用

 下面是一个简单的示例:

取到表单中的输入框的值,然后做一个简单的If判断,输出对应内容

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

<html>
<body>
<h2>D3 Sunday!</h2>

<form action="d3.jsp" method = "get">
flower name: <input type="text" name="flower" value = "${param.flower}">
<br>
<input type="submit" value="log in">
</form>

<c:if test="${param.flower=='sun'}" var="isSun">
    <c:out  value = "This is a sunflower"/>
</c:if>
<c:out value ="${isSun}"/>

</body>


</html>



我写的时候一直报这个错误:

根据标记文件中的TLD或attribute指令,attribute[value]不接受任何表达式

其实就是引入标签库那里版本不对:

 JSTL 1.0 的声明是:
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core " %>

   JSTL1.1以后 的声明是:
    <%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core %>

我用的jstl是1.2,所以要用第二个声明

JSTL标签的功能和java一样,所以java有的语句它都有,比如for循环:

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

<html>
<body>

<%

ArrayList<String> list = new ArrayList<>();
list.add("tulip");
list.add("balsam");
list.add("sweet pea");
list.add("lily");
request.setAttribute("list", list);
%>


<c:forEach var="flower" items="${list}">
    <c:out value="${flower}"/>
    <br>
</c:forEach>


</body>
</html>

需要注意的是,要使用ArrayList是要用page指令引入对应的包的。

在JSTL中也不能直接使用<%%>内的java代码定义的变量,而是要把变量放到page或request或session或application中。

再在JSTL中用EL表达式${}去取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值