jsp标准标签&jstl标签用法笔记

  • EL表达式取pageContext、parameters、request、session、application 等处的属性值(假如有 name 属性)分别是:

    ${pageScope.name}、${param.name}、{$requestScope.name}、{$sessionScope.name}、{$applicationScope.name}

 

  • jsp:useBean: 引用javaBean对象到jsp页面,让页面能用EL表达式或jsp:getProperty引用此Bean用法如下

<jsp:useBean id="now" class="java.util.Date" scope="page"/>

此标签表示在page范围内查找id为now的javaBean对象,找到就直接使用,没有就创建对象并置于指定的范围内

其中id属性表示bean在页面中的标识,class为bean的类名。上面定义以后可在页面上这样使用

${now}, <jsp:getProperty property="time" name="now"/>

其他不常用:

<jsp:useBean

id="beanInstanceName"

scope="page | request | session | application"

{

class="package.class" |

type="package.class" |

class="package.class" type="package.class" |

beanName="{package.class | <%= expression %>}" type="package.class"

}

/>other elements</jsp:useBean>

用于创建一个JavaBeans组件,首先会试图定位一个Bean实例,如果不存在,那么就会从创建一个新的.

属性:

-id="创建的Bean变量名称"

在你所定义的范围中确认Bean的变量,你能在后面的程序中使用此变量名来分辨不同的Bean 这个变量名对大小写敏感,如果这个Bean已经在别的<jsp:useBean>中创建,那么这个id的值必须与原来的那个id值一致.

-scope="page | request | session | application"Bean存在的范围以及id变量名的有效范围.缺省值是page.

 

  •  jsp:getProperty:显示jsp:useBean标签定义的javaBean属性,如上例所示。此标签相对EL显得很臃肿,能用EL就用EL替换吧 
  • forEach循环标签,示例说明

a)打印1,2,3,4,5

 

<c:forEach begin="1" end="5" var="i" varStatus="forFlag">

<c:if test="${!forFlag.first}">,</c:if>

${i}

</c:forEach>

b)打印1,2,3,4,5当要红黑相间打印

 

<c:forEach begin="1" end="5" var="i" varStatus="forFlag">

<c:if test="${!forFlag.first}">,</c:if>

<c:set var="acolor" value="black"/>

<c:if test="${forFlag.index%2==0}">

<c:set var="acolor" value="red"/>

</c:if>

<font color="${acolor}">${i}</font>

</c:forEach>

  注意:varStatus属性又有两个子属性count, index两个属性都在循环是递增,当count从1开始,index从0开始

   varStatus其他属性:first表示是否是第一次,last是否最后一次,begin/end/step属性

c)打印student列表,items属性用el表达式,给定待迭代的集合,var指定每次在集合里取出的元素

<c:forEach items="${students}" var="stu">

    ${stu.code}-${stu.name}

</c:forEach>

 

  • 格式化相关uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"

a)日期输出类似 2010-10-10 09:10:10格式

<jsp:useBean id="now" class="java.util.Date"></jsp:useBean>

<fmt:formatDate value="${now}" pattern="yyyy-MM-dd hh:mm:ss"/>

 

b)数字格式化输出 12.5

<c:set var="amount" value="12.47"/>

<fmt:formatNumber pattern="##.#" value="${amount}"></fmt:formatNumber>

 

c)把字符串解析成数字,并存储到scope(application,page,session,request)中,如果不指定scope默认在page

<fmt:parseNumber value="10.123456" type="number" var="credit2" scope="page"></fmt:parseNumber>

 

d)把字符串解析成日期

 

<fmt:parseDate value="2010-11-11 15:30:30" var="myDate"  pattern="yyyy-MM-dd HH:mm:ss"/>

<fmt:formatDate value="${myDate}" pattern="yyyy-MM-dd hh:mm:ss"/>

注意:HH是24小时制/天,hh是12小时制/天。上面输出 2010-11-11 03:30:30

 

  • 函数,重点!<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>,注意函数一般都在el表达式里面使用。

a)转换大小写,trim, length

${fn:toLowerCase('aBc')}  ==> abc

${fn:toUpperCase('abc')}  ==> ABC

${fn:trim('  ab   ')} ==>ab

${fn:length('abcd')} == >4

 

 

b)取子串

 

${fn:substring('012345', 1, 3)} ==>12

${fn:substring('012345', 1, -1)} ==>12345

${fn:substringAfter("0755-26668888",'-')} ==>26668888

${fn:substringBefore('0755-26776888','-')} ==>0755

${fn:substringBefore('001-22', '--') } ==>

 

 

c)开始结束、包含 startsWith, endsWith,contains, containsIgnoreCase函数必须和判断控制语句联用 <c:if> <c:choose>..

<c:if test="${fn:startsWith('abc-001', 'abc')}">TT</c:if> ==> TT

<c:if test="${fn:endsWith('abc-001','001')}">BB</c:if>  ==> BB

<c:if test="${fn:contains('abc', 'b')}">contains</c:if> ==> contains

<c:if test="${fn:containsIgnoreCase('bad', 'A')}">containsIgnoreCase</c:if> ==>containsIgnoreCase

 

d)查位置

${fn:indexOf('abc', 'b')}  ==> 1

 

e)${fn:escapeXml('<div>abc</div>')}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值