zoukankan      html  css  js  c++  java
  • JavaWeb_day08_EL JSTL

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.

    **转载请注明 出自 : luogg的博客园 ** 谢谢配合!

    day08 EL JSTL

    EL表达式

    语法:${}

    获取域中对象的值

    <%
    	request.setAttribute("name", "小花");
    	session.setAttribute("name", "小傻");
    	pageContext.setAttribute("name", "小凤");//按照最小的输出
    	application.setAttribute("name", "小四");
    	request.setAttribute("name.name","小花花");
    %>
    
    ${name }//名字相同情况,输出作用范围最小的,pageContext
    ${pageScope.name }
    ${requestScope.name }
    ${sessionScope.name }
    ${applicationScope.name}
    
    

    域中数组的值

    <%
    	String [] arrs = {"美美","波波","东东","名名"};
    	request.setAttribute("arrs", arrs);
    %>
    ${ arrs[2] }//东东
    

    域中集合的值

    <%
        List<String> list = new ArrayList<String>();
    	list.add("美美");
    	list.add("小凤");
    	list.add("芙蓉");
    	request.setAttribute("list", list);
    %>
    ${ list[1] }//小凤
    

    域中Map集合的值

    <%
        Map<String,String> map = new HashMap<String,String>();
    	map.put("aa", "美美");
    	map.put("bb", "小凤");
    	request.setAttribute("map", map);
    %>
    ${ map.bb }//小凤
    

    域中集合有对象或者Bean的值

    <%
    	List<User2> uList = new ArrayList<User2>();
    	uList.add(new User2("banzhang","123"));
    	uList.add(new User2("美美","abc"));
    	request.setAttribute("uList", uList);
    %>
    ${ uList[1].username }
    
    ===========================
        List<EmpBean> list = empDao.showByPage(1, searchBean);
    	request.setAttribute("list", list);
    	${list[0].name }
    

    执行运算

    加减乘除 ${1+2}
    关系运算 gt小于 lt大于 eq等于 ne不等于 ge大于等于 le小于等于

    WEB开发中的对象

    pageScope
    requestScope
    sessionScope
    applicationScope

    EL其他内置对象

    param 获取单个请求参数,form表单提交过来的参数.${param.name }
    paramValues 获取捆绑数组参数,form表单中input有多个输入并且name一样,${paramValues.password[1] }
    header
    headerValues
    initParam 获取全局初始化参数
    pageContext

    JSTL

    JSTL(JSP Standard Tag Library)JSP标准标签库,作用:和EL表达式一起 取代<% %>

    版本:

    1.0 1.1和1.2(区别不大)
    1.0EL表达式没有纳入规范
    1.1和1.2EL表达式纳入规范

    步骤

    1.下载jar包,导入到工程中
    jstl.jar , standard.jar
    2.导入jar包,引入标签库
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    JSTL标签

    1.<c:out> 输出内容

    属性 : value 输出的内容(常量或变量)
    default:找不到value时候输出
    escapeXml:默认是true,进行转义,false不转义,原样输出.
    <c:out value="&gt${list[1] }&lt" escapeXml="true">找不到</c:out>
    defalut可以写在标签内部,也可以写在两个标签中间.

    2.<c:set>

    1
    <c:set value="花花" var="name" scope="request"></c:set>
    <c:out value="${requestScope.name }"></c:out>
    
    2
    <%UserBean userBean = new UserBean(); 
    request.setAttribute("userBean", userBean); %>
    <c:set target="${userBean }" property="loginName" value="美美"></c:set>
    <c:out value="${userBean.loginName }"></c:out>
    
    3
    <%Map<String,String> map = new HashMap<String,String>();
    //map.put("第一", "小王");
    //map.put("第二", "小凤");
    request.setAttribute("map", map);
    %>
    <c:set target="${map }" property="name" value="丽丽"></c:set>
    <c:out value="${map.name }"></c:out>//丽丽
    
    4彻底在jsp中拜托java代码
    <jsp:useBean id="userBean" class="com.luogg.bean.UserBean"></jsp:useBean>
    <c:set target="${userBean }" property="loginName">花花</c:set>
    <c:out value="${userBean.loginName} "></c:out>
    
    
    
    set中的各个属性

    value object 值
    var String 表达value的属性
    scope String var的有效范围
    target String 设置的属性对象,必须是JavaBean或者Map对象
    property Object target对象中的属性名

    target给的是Bean,property就是Bean的属性名,给的是map,他就是key

    3.判断标签:if,choose,when,otherwise

    <c:set value="27" var="age"></c:set>
    	1.if的练习
    	<c:if test="${age>25 }">
    		<c:out value="还很年轻"></c:out>//还很年轻
    	</c:if>
    	2.choose的练习
    <c:choose>
        <c:when test="${age>0 && age<25 }">
    	    <c:out value="还很年轻"></c:out>
        </c:when>
        <c:when test="${age>25 && age<40}">
    	    <c:out value="不怎么年轻了"></c:out>//不怎么年轻了
        </c:when>
        <c:otherwise>
    	    嗯...
        </c:otherwise>
    </c:choose>
    

    4.迭代标签:foreach

    var 参数名字
    items将要迭代的集合
    varStatus表示迭代的状态,可以访问迭代自身的状态
    begin end step迭代步长

    1.集合的迭代
    <!--花花 小丽 小凤-->
    <%
    	List<String> list = new ArrayList<String>();
    	list.add("花花");
    	list.add("小丽");
    	list.add("小凤");
    	request.setAttribute("list", list);		
    %>
    <c:forEach items="${requestScope.list }" var="iteror">
    	${iteror }
    </c:forEach>
    
    
    2.迭代Bean,返回 `List<EmpBean>`
    <c:forEach items="${list }" var="EmpBean">
        <td>${EmpBean.empID}</td>
        <td>${EmpBean.firstName}</td>
    </c:forEach>
    
    
    3.foreach可以作为for循环
    
    <!--1 2 3 4 5 6 7 8 9 10-->
    <c:forEach begin="1" end="10" step="1" var="i">
    	${i }
    </c:forEach>
    
    
    4.foreach可以获取迭代自身的状态,比如获取到此次迭代的索引,已迭代的数量,是否第一个迭代对象,是否最后一个迭代对象。
    
    <!--0 花花 1 true false; 1 小丽 2 false false; 2 小凤 3 false true;  -->
    <%
    	List<String> list = new ArrayList<String>();
    	list.add("花花");
    	list.add("小丽");
    	list.add("小凤");
    	request.setAttribute("list", list);		
    %>
    <c:forEach items="${list }" var="list" varStatus="id">
    	${id.index } 迭代到哪个
    	${list }    跌倒的元素
    	${id.count }    迭代次数
    	${id.first }    是否是第一个
    	${id.last };    是否是最后一个
    	
    
  • 相关阅读:
    使用SDL2显示一张图片,SDL2上手贴
    两种方法操作其它mac应用的窗口
    golang子进程的启动和停止,mac与linux的区别
    自己动手,装一个液晶电视
    在Ubuntu上搭建kindle gtk开发环境
    macOS的OpenCL高性能计算
    量子计算及量子计算的模拟
    iPhone多次输入错误密码锁机后刷机恢复(原有内容会丢失)
    Day 2 总结
    Day 13 linux 的输入输出与管道的使用
  • 原文地址:https://www.cnblogs.com/luogg/p/6063175.html
Copyright © 2011-2022 走看看