JavaWeb初识 jsp(EL表达式),JSTL

什么是EL表达式,简易JSP的操作
在EL表达式中也可以调用相应的方法,例如String中的trim() 方法
EL表达式简化 JSP向网页的输出
EL表达式如果你的值为null(为空)他就不会进行相应的输出
EL表达式查找过程:先Request,再是Session,然后才是Application(SevletContext)
固定查找
SessionScope session中的指定输出查找
RequestScope request中的指定输出查找
ApplicationScope applicationScope 中的指定输出查找

    request.setAttribute("sname", "request");
    session.setAttribute("sname", "session");
    application.setAttribute("sname", "appliccation");
%>
${requestScope.sname}<br>
${sessionScope.sname}<br>
${applicationScope.sname}<br>

假如你将一个对象塞入request中你也可以通过EL表达式将他取出来
1.需要引入对象(用page说明对象路径)
2.创建对象 set塞入值
4.放入request中
5.通过EL表达式拿出值

<%
    Student student = new Student();
    student.setAddress("上海");
    student.setAge("15");
    student.setName("李四");
    request.setAttribute("student", student);
%>
${student.address}<br><%--EL表达式会自动帮你拿到get值--%>
${student.name}<br>
${student.age}

也可以获得url传输的值

${param.age}
${param.url参数名称}

可以获得cookiezh值 ${cookie.要得到的值}
请求头例如获得用户浏览器信息 ${header["user-agent"]}
也可以进行三元运算 ${student.age>=15?"青年":"少年"}<%--可以自动将字符串转换成数字做运算--%>
可以做简易判断返回true,fales ${student.age>15}

也可以拿到集合长度

${list.size()}<br>

JSTL 是一个标记和HTML不一样,这个标记是解决Java 代码的繁琐
需要引入JSTL的包
第一步引入JSTL标记库

<%--标准标记库 prefix标记前缀, uri标记地址--%>
<%@taglib prefix="tl" uri="http://java.sun.com/jstl/fmt_rt" %>
<%--格式转化标记库--%>

循环标记:
如果你在JSP中取出集合的值的话需要这样去

ArrayList<Student> arrayList1 = (ArrayList<Student>) request.getAttribute("date");
for (Student o : arrayList1) {
out.println(o.getAge() + "<br>");
}
%>

但是用了JSTL标记后就可以这样去

    ${o.age}
    ${o.name}
</js:forEach>


js标记库前缀名称,forEach循环取值, items取值对象,var要塞入的对象,也可以控制下标begin开始下标,end到那个下标结束
varStatus可以去到下标

${xx.count} 数量
${xx.index} 下标

${o.name} 同过EL进行取值

还可以给死值循环

    ${XI}
</js:forEach>

通过JSTL可以进行IF判断没有else

    嘻嘻哈哈
</js:if>

也有多路判断

    <js:when test="${requestScope.age>20}">阿拉蕾</js:when>
    <js:when test="${age<15}"></js:when>
    <js:when test="${age==11}"></js:when>
    <js:otherwise>
        没有您要的选项
    </js:otherwise>
</js:choose>

也有异常处理 将值放入到一个对象当中

<js:catch var="name">
    <%
        String name = null;
        name.toString();
    %>
</js:catch>
${name}
 

也可以存储值临时

<js:set var="address" value="湖南" scope="request"></js:set>${address}

也可以进行输出 输出可以调,如果没有就输出什么

<js:out value="${xx}" default="没有"/>
上一篇:js和css在线压缩工具


下一篇:达摩院视觉算法黑科技之透明抠图