本文为博主辛苦总结,但愿本身之后返回来看的时候理解更深入,也但愿能够起到帮助初学者的做用.
转载请注明 出自 : luogg的博客园 谢谢配合!
语法:${}html
<% 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<String,String> map = new HashMap<String,String>(); map.put("aa", "美美"); map.put("bb", "小凤"); request.setAttribute("map", map); %> ${ map.bb }//小凤
<% 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小于等于java
pageScope
requestScope
sessionScope
applicationScopeweb
param 获取单个请求参数,form表单提交过来的参数.${param.name }
paramValues 获取捆绑数组参数,form表单中input有多个输入而且name同样,${paramValues.password[1] }
header
headerValues
initParam 获取全局初始化参数
pageContext数组
JSTL(JSP Standard Tag Library)JSP标准标签库,做用:和EL表达式一块儿 取代<% %>session
1.0 1.1和1.2(区别不大)
1.0EL表达式没有归入规范
1.1和1.2EL表达式归入规范app
1.下载jar包,导入到工程中
jstl.jar , standard.jar
2.导入jar包,引入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>jsp
<c:out>
输出内容属性 : value 输出的内容(常量或变量)
default:找不到value时候输出
escapeXml:默认是true,进行转义,false不转义,原样输出.
<c:out value=">${list[1] }<" escapeXml="true">找不到</c:out>
defalut能够写在标签内部,也能够写在两个标签中间.code
<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>
value object 值
var String 表达value的属性
scope String var的有效范围
target String 设置的属性对象,必须是JavaBean或者Map对象
property Object target对象中的属性名orm
target给的是Bean,property就是Bean的属性名,给的是map,他就是keyhtm
<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>
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 }; 是不是最后一个