比EL更强大,eclipse不支持
需要下载jar包 jstl.jar standard.jar引入taglib,类似于导包,在jsp文件中前面加上一行 <%taglib uri = "http://java.sun.com/jsp/jstl/core" prefix= "c" %> 像酱? 其中prefix="c"是前缀的意思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"> //会报错的强大之处:
有个default,如果某个值不存在就会显示默认的值 有个escapeXml 当值为true的时候直接显示<a href......> 为false的时候就显示?
比如 <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,怎么着都不是表达式
这里的end是能取到的,是闭区间 index可以用来获取标签值
< c:forEach var="元素名" items = "${request.数组}" > ${status.index} ${元素名} < /c:forEach > < c:forEach var="元素名" items = "${request.list}" > ${status.index} ${元素名} < /c:forEach >