JSTL

    xiaoxiao2023-10-07  144

    比EL更强大,eclipse不支持

    需要下载jar包 jstl.jar standard.jar引入taglib,类似于导包,在jsp文件中前面加上一行 <%taglib uri = "http://java.sun.com/jsp/jstl/core" prefix= "c" %> 像酱? 其中prefix="c"是前缀的意思

    核心标签库

    通用标签库

    <c:set> 赋值

    i.给某个变量赋值 < c:set var="变量名" value="变量值" scope="作用域" /> 比如: //两者完全等价,其中scope指明作用域 <% request.setAttribute("name","ljn") %> < c:set var="name" value="ljn" scope="request" /> ii.给某个对象的成员(或者说属性)赋值 <c:set target = "对象" property = "对象的属性" value = "要赋的值"> 如: <c:set target = "${requestScope.student}" property = "name" value = "lala">

    注意这里不需要指定scope哦,因为前面的requestScope已经指定了作用域 可以给不存在的变量赋值,不能给不存在的对象赋值

    <c:set var = "x" value="y" scope = "request"> //ok的 <c:set target = "${requestScope.xxx}" property="p"> //会报错的
    <c:out> 显示

    强大之处:

    有个default,如果某个值不存在就会显示默认的值 有个escapeXml 当值为true的时候直接显示<a href......> 为false的时候就显示?
    <c:remove> 删除

    <c:if test = “”>

    比如 <c:if test = "${10>2 } "> haha < /c:if> 就会直接显示haha

    进阶版: //这里的var会新建一个boolean变量名为result,并把if判断的结果放到里面 <c:if test = "${10>2 } " var = "result"> haha ${result} < /c:if>

    这里页面就显示 haha true

    choose版(很像switch) <c:choose> <c:when test= "..."> < /c:when > <c:when test= "..."> < /c:when > <c:when test= "..."> < /c:when > <c:otherwise> < /c:when > </c:choose>

    使用test的时候一定要注意“”里面不要有多余的空格, 服务器会以为是String,怎么着都不是表达式

    循环(迭代标签库)
    < c:forEach begin="" end="" step= "" > ${status.index} < /c:forEach >

    这里的end是能取到的,是闭区间 index可以用来获取标签值

    < c:forEach var="元素名" items = "${request.数组}" > ${status.index} ${元素名} < /c:forEach > < c:forEach var="元素名" items = "${request.list}" > ${status.index} ${元素名} < /c:forEach >
    最新回复(0)