Jsp 动作标签 java server page
//实例化一个bean,给bean的属性赋值
<jsp:useBean id="ub" class="com.bean.UserBean"></jsp:useBean>
<jsp:setProperty name="ub" property="uname" value="小强"/>
<jsp:getProperty name="ub" property="uname"/>
Jstl标签 java standard taglib language
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="true"%>
//page指令中,isELIgnored="true"默认为false,就是值允许EL表达式,设置true则不允许EL表达式
[表达式标签]
1、c:out = 输出标签
<c:out value="" default="" escapeXml=""></c:out>
属性: /*
* value:值
* default:默认值
* escapeXml:默认允许输出特殊字符串
*/
//当没有变量uName时,则输出default的值
<c:out value="${uName}" default="null值"></c:out>
//如果escapeXml为false时,则特殊字符不起作用,页面会显示红色的Hello
<c:out value="<font color=red>Hello</font>" escapeXml="false"></c:out>
2、c:set = 赋值,设置属性
<c:set var="" property="" value="" target="" scope=""></c:set>
属性: /*
* var:作用域属性
* property:属性名
* value:属性值
* target:bean属性或map值
* scope:作用域范围{page,request,session,application}
*/
假设有UserBean类,有uName,uPass,uAge3个属性,给UserBean类赋值
//var:版本,如果value值为null,则var属性将被删除,如果value值不为null,var属性被创建
<c:set var="uName" scope="session">valen</c:set>
<c:set var="uName" scope="session" value="valen"></c:set>
//上面两种方式一样,只不过第2种赋值方式为有文本体
<c:out value="${uName}"></c:out>
//target:版本,下面这段代码意思是,首先实例化一个UserBean的对象为ub,然后给这个对象的uName
属性赋值放入scope中,名字为ub1,
//然后将ub1输出,如果ub1没有指定scope,则输出的时候会去4个容器中查找
<jsp:useBean id="ub" class="bean.UserBean"></jsp:useBean>
<c:set target="${ub}" property="uname" value="valen"></c:set>
<c:out value="${ub.uname}"></c:out>
3、c:remove
/*
* var:要删除的名字
* scope:从哪个容器里删除,如果未指定,则把所有容器中为改名字的删除
*/
4、c:catch
/*
* var:错误属性名
*/
//将可能会出错的程序外围加入c:catch标签,程序报错后,会记录在var的属性名中,然后将错误信息打印
出来
<c:catch var="exception" >
<% int i = 9/0; %>
</c:catch>
//exception:java.lang.ArithmeticException: / by zero
<c:out value="${exception}"></c:out>
//exception.message相当于exception.getMessage()
<c:out value="${exception.message}"></c:out>
[流程控制标签]
5、c:if
/*
* test:代表表达式内容为true则执行本体内容
* scope:取值范围
* var:用来存储test运算后的结果{true|false}
*/
//
<c:if test="${ub.uname=='小白'}">
<c:out value="登录成功"></c:out>
</c:if>
6、c:choose、when、otherwise
/*
* when test:当条件满足时执行
* otherwise:否则执行otherwise的语句
*/
<c:choose >
<c:when test="">
<c:out value=""></c:out>
</c:when>
<c:otherwise >
<c:out value=""></c:out>
</c:otherwise>
</c:choose>
[迭代标签]
7、c:forEach
/*
* begin:如果指定了items,就从items[begin]开始迭代,如果没有指定就在begin开始,类型为整数
* end:类型为整数
* items:要进行迭代的集合
* step:迭代的步长
* var:迭代参数的名称
* varStatus:迭代变量的名称,用来表示迭代的状态
*/
//${userinfo} 就等于request.setAttribute("userinfo",al);
<c:forEach items="${userinfo}" var="ub">
<tr>
<td align="center"><c:out value="${ub.uname}"></c:out></td>
<td align="center"><c:out value="${ub.upass}"></c:out></td>
<td align="center"><c:out value="${ub.age}"></c:out></td>
<td align="center"><c:out value="${ub.email}"></c:out></td>
<td align="center"><c:out value="${ub.address}"></c:out></td>
</tr>
</c:forEach>
8、c:forTokens
/*
* items:
* delims:以什么字符分割
*/
<c:forTokens var="token" items="bleu,blanc,rouge|vert,jaune|blanc,rouge" delims="|,">
<c:out value="${token}"/>
</c:forTokens>
[URL标签]
9、c:import
/*
* url:引入页面,与jsp:include相同
* 好处:当被引用的页面发生更改时,容器能立刻产生反应
* 指令引入:是指引入页面也被引入页面完全融合,2个页面的属性可以共用
*/
10、c:param
/*
* name:变量名
* value:变量值
*/
//param要与import和redirect结合使用,相当于传递参数
11、c:redirect
//跳转页面,跳转到b页面,可以把参数data传送过去
<c:redirect url="b.jsp" >
<c:param name="data" value="hello,a!"></c:param>
</c:redirect>
EL表达式应用
{param.txtName} = request.getParameters("txtName");
<c:out value="${param.txtName }"></c:out>
{paramValues.txtCheckBox} = request.getParameterValues("txtCheckBox"); //返回一个数组,可以用
下标取值
<c:out value="${paramValues.txtCheckBox[0]}"></c:out>