Chinaunix首页 | 论坛 | 博客
  • 博客访问: 342565
  • 博文数量: 329
  • 博客积分: 2633
  • 博客等级: 少校
  • 技术积分: 3633
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-22 15:43
文章分类

全部博文(329)

文章存档

2013年(244)

2012年(46)

2011年(39)

我的朋友

分类: 系统运维

2012-03-21 21:18:14

 

jstlSQL标签库

SQL tag Library中的标签用来提供在 JSP 页面中可以与数据库进行交互的功能
Database access
标签库有以下6组标签来进行工作:
1.
标签:用于设置数据源
:
   
定义一个数据源并保存在"dataSrc"变量内

                    var="dataSrc"
            url="jdbc:postgresql://localhost:5432/myDB"
            driver="org.postgresql.Driver"
            user="admin"
            password="1111"/>
2.
标签:用于查询
它标签体内可以是一句查询 SQL,保存的结果是 javax.servlet.jsp.jstl.sql.Result 类型的实例
:
   
使用 标签启动查询,将结果保存到变量"queryResults"

   
        select * from table1
   

   
要取得结果集中的数据可以使用 循环来进行:
   
     
               ${row.userName}
               ${row.passWord}
     
   

其中,"row"javax.servlet.jsp.jstl.sql.Result实例的变量属性之一,用来表示数据库表中的""集合

循环时,通过"${row.XXX}"表达式可以取得每一列的数据,"XXX"是表中的列名
3.
标签:用于更新数据库,它的标签体内可以是一句更新的 SQL 语句
:
   
4.
标签:用于事务处理
标签用于数据库的事务处理,在该标签体内可以使用 标签和 标签,而 标签的事务管理将作用于它们之上。
标签对于事务处理定义了 read_committed read_uncommitted repeatable_read serializable4 个隔离级别。

:
   
       
       
   

5.
标签:用于向 SQL 语句提供参数
这两个标签用于向 SQL 语句提供参数,就好像程序中预处理 SQL “ ? ”一样
标签传递除 java.util.Date 类型以外的所有相融参数,
标签则指定必须传递 java.util.Date 类型的参数。

:
   
        select * from user where username=?
       
   

 

JstlXML标签库

JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用DomSAX标签库的繁琐,能轻松的读取xml文件的内容。

1标签

标签用来解析指定的xml文件。

属性说明

属性名

说明

EL

类型

必须

默认值

doc

指定解析的xml文件

String/Reader

var

存储解析后的xml文件

String

scope

指定varJSP范围

String

page

varDom

以(org.w3c.dom.Doucemet)的形式存储解析的xml文件

String

scopeDom

指定varDomJSP范围

String

page

systemId

xml文件的url

String

filter

解析xml文件的过滤器

Org.xml.sax.Filter

提示:doc指定解析的xml文件并不是指定xml文件的路径,而是同共同使用,由加载并存储,然后使用解析。

例如:如果解析person.xml文件需要通过如下代码实现对xml文件的解析。

语句用来导入或存储文件到JSP。如果不使用var来存储,xml文件将显式的出现在JSP文件中。

标签只用来解析xml文件,并不显示xml文件中的内容,如果想得到xml的节点元素或值需要使用元素来实现。

2标签

标签主要用来输出xml的信息。

【语法】:

标签属性说明

属性名

说明

EL

类型

必须

默认值

select

指定使用的XPath语句

String

escapeXml

是否转换特殊字符。如<

boolean

true

提示:使用XPath语句需要用到xalan.jar支持包,可以从示例程序的lib中获取,获得直接从myEclipse中可以找到。

3标签

标签用于将从xml文件节点解析的内容存储到JSP属性范围中。

【语法】:

【参数说明】:

1select通过指定的XPath表达式语句获取节点的值。

2var指定用于存储值的变量名。

3)指定varJSP属性范围。

4

主要用于条件判断。

【语法1】:未含有本体内容。

【语法2】:含有本体内容。

本体内容

语法1只把根据条件表达式得到的结果的存储在JSP范围中,语法2根据标签根据条件表达式的结果决定是否执行本体内的代码。

【参数说明】:

1select用来指定使用的XpathExperssion表达式。

2var设定标量名用来存储表达式的结果。

3scope指定var存储的JSP属性范围。

5标签

同核心标签库的标签作用相似,只是使用的条件表达式不同。

是主标签,放在标签体内共同使用。

【语法】:

其中只有有属性。

【语法】:

6标签

标签实现了对xml文档的遍历。

标签属性说明

属性名

说明

EL

类型

必须

默认值

select

指定使用的XPath语句

String

var

用于存储表达式的结果

String

varStatus

用来存放循环到的变量的相关信息

String

begin

循环的起始位置

int

end

循环的终止位置

int

7标签

使用该标签可以轻松的实现xmlXSLT的转化。

标签属性说明

属性名

说明

EL

类型

必须

默认值

doc

指定xml文件来源

String

xslt

转化xml的样式模板

String

docSystemId

xml文件的URI

String

xsltSystemId

xslt文件的URI

String

result

用来存储转换后的结果对象

java.xml.transform

var

org.w3c.dom.Documet类型存储转换后的结果

String

scope

var的属性范围

String

8标签

该标签用来为标签转换参数。

【语法1】:

【语法2】:

Value

【参数说明】:

1name指定参数的名称。

2value指定参数值。

 

 

JstlFunctions 标签库
    
称呼Functions标签库为标签库,倒不如称呼其为函数库来得更容易理解些。因为Functions标签库并没有提供传统的标签来为JSP页面的工作 服务,而是被用于EL表达式语句中。在JSP2.0规范下出现的Functions标签库为EL表达式语句提供了许多更为有用的功能。Functions 标签库分为两大类,共16个函数。

       长度函数:fn:length
      
字符串处理函数:fn:containsfn:containsIgnoreCasefn:endsWithfn:escapeXml fn:indexOffn:joinfn:replacefn:splitfn:startsWithfn:substring fn:substringAfterfn:substringBeforefn:toLowerCasefn:toUpperCase fn:trim

以下是各个函数的用途和属性以及简单示例。

长度函数 fn:length 函数
      
长度函数fn:length的出现有重要的意义。在JSTL1.0中,有一个功能被忽略了,那就是对集合的长度取值。虽然 java.util.Collection接口定义了size方法,但是该方法不是一个标准的JavaBean属性方法(没有get,set方法),因 此,无法通过EL表达式“ ${collection.size} ”来轻松取得。

fn:length函数正是为了解决这个问题而被设计出来的。它的参数为input,将计算通过该属性传入的对象长度。该对象应该为集合类型或String类型。其返回结果是一个int类型的值。下面看一个示例。

<%ArrayList arrayList1 = new ArrayList();
                            arrayList1.add("aa");
                            arrayList1.add("bb");
                            arrayList1.add("cc");

%>
<%request.getSession().setAttribute("arrayList1", arrayList1);%>
${fn:length(sessionScope.arrayList1)}

假设一个ArrayList类型的实例“ arrayList1 ”,并为其添加三个字符串对象,使用fn:length函数后就可以取得返回结果为“ 3 ”

判断函数 fn:contains 函数
       fn:contains
函数用来判断源字符串是否包含子字符串。它包括stringsubstring两个参数,它们都是String类型,分布表示源字符串和子字符串。其返回结果为一个boolean类型的值。下面看一个示例。

${fn:contains("ABC", "a")}

${fn:contains("ABC", "A")}

前者返回“ false ”,后者返回“ true ”

3 fn:containsIgnoreCase函数 
      fn:containsIgnoreCase函数与fn:contains函数的功能差不多,唯一的区别是fn:containsIgnoreCase函 数对于子字符串的包含比较将忽略大小写。它与fn:contains函数相同,包括stringsubstring两个参数,并返回一个boolean 类型的值。下面看一个示例。

${fn:containsIgnoreCase("ABC", "a")}

${fn:containsIgnoreCase("ABC", "A")}

前者和后者都会返回“ true ”

 

词头判断函数 fn:startsWith 函数
       fn:startsWith
函数用来判断源字符串是否符合一连串的特定词头。它除了包含一个string参数外,还包含一个subffx参数,表示词头字符串,同样是String类型。该函数返回一个boolean类型的值。下面看一个示例。

${fn:startsWith ("ABC", "ab")}

${fn:startsWith ("ABC", "AB")}

前者返回“ false ”,后者返回“ true ”

 

词尾判断函数 fn:endsWith 函数
       fn:endsWith
函数用来判断源字符串是否符合一连串的特定词尾。它与fn:startsWith函数相同,包括stringsubffx两个参数,并返回一个boolean类型的值。下面看一个示例。

${fn:endsWith("ABC", "bc")}

${fn:endsWith("ABC", "BC")}

前者返回“ false ”,后者返回“ true ”

 

字符实体转换函数 fn:escapeXml 函数
fn:escapeXml
函数用于将所有特殊字符转化为字符实体码。它只包含一个string参数,返回一个String类型的值。

 

字符匹配函数 fn:indexOf 函数
       fn:indexOf
函数用于取得子字符串与源字符串匹配的开始位置,若子字符串与源字符串中的内容没有匹配成功将返回“ -1 ”。它包括stringsubstring两个参数,返回结果为int类型。下面看一个示例。

${fn:indexOf("ABCD","aBC")}

${fn:indexOf("ABCD","BC")}

前者由于没有匹配成功,所以返回-1,后者匹配成功将返回位置的下标,为1

分隔符函数 fn:join 函数
       fn:join
函数允许为一个字符串数组中的每一个字符串加上分隔符,并连接起来。它的参数、返回结果和描述如表9.25所示:

9.25 fn:join函数

参数

描述

array

字符串数组。其类型必须为String[]类型

separator

分隔符。其类型必须为String类型

返回结果

返回一个String类型的值

下面看一个示例。

<% String[] stringArray = {"a","b","c"}; %>
<%request.getSession().setAttribute("stringArray", stringArray);%>
${fn:join(sessionScope.stringArray,";")}

定义数组并放置到Session中,然后通过Session得到该字符串数组,使用fn:join函数并传入分隔符“ ; ”,得到的结果为“ a;b;c ”

 

10 替换函数 fn:replace 函数
       fn:replace
函数允许为源字符串做替换的工作。它的参数、返回结果和描述如表9.26所示:

9.26 fn:replace函数

参数

描述

inputString

源字符串。其类型必须为String类型

beforeSubstring

指定被替换字符串。其类型必须为String类型

afterSubstring

指定替换字符串。其类型必须为String类型

返回结果

返回一个String类型的值

下面看一个示例。

${fn:replace("ABC","A","B")}

“ ABC ”字符串替换为“ BBC ”,在“ ABC ”字符串中用“ B ”替换了“ A ”

 

11 分隔符转换数组函数 fn:split 函数
       fn:split
函数用于将一组由分隔符分隔的字符串转换成字符串数组。它的参数、返回结果和描述如表9.27所示:

9.27 fn:split函数

参数

描述

string

源字符串。其类型必须为String类型

delimiters

指定分隔符。其类型必须为String类型

返回结果

返回一个String[]类型的值

下面看一个示例。

${fn:split("A,B,C",",")}

“ A,B,C ”字符串转换为数组{A,B,C}

 

12 字符串截取函数 fn:substring 函数
       fn:substring
函数用于截取字符串。它的参数、返回结果和描述如表9.28所示:

9.28 fn:substring函数

参数

描述

string

源字符串。其类型必须为String类型

beginIndex

指定起始下标(值从0开始)。其类型必须为int类型

endIndex

指定结束下标(值从0开始)。其类型必须为int类型

返回结果

返回一个String类型的值

下面看一个示例。

${fn:substring("ABC","1","2")}

截取结果为“ B ”

 

14 起始到定位截取字符串函数 fn:substringBefore 函数
       fn:substringBefore
函数允许截取源字符从开始到某个字符串。它的参数和fn:substringAfter函数相同,不同的是substring表示的是结束字符串。下面看一个示例。

${fn:substringBefore("ABCD","BC")}

截取的结果为“ A ”

 

15 小写转换函数 fn:toLowerCase 函数
       fn:toLowerCase
函数允许将源字符串中的字符全部转换成小写字符。它只有一个表示源字符串的参数string,函数返回一个String类型的值。下面看一个示例。

${fn:toLowerCase("ABCD")}

转换的结果为“ abcd ”

 

16大写转换函数 fn:toUpperCase 函数
       fn:toUpperCase
函数允许将源字符串中的字符全部转换成大写字符。它与fn:toLowerCase函数相同,也只有一个String参数,并返回一个String类型的值。下面看一个示例。

${fn:toUpperCase("abcd")}

转换的结果为“ ABCD ”

 

17空格删除函数 fn:trim 函数
       fn:trim
函数将删除源字符串中结尾部分的空格以产生一个新的字符串。它与fn:toLowerCase函数相同,只有一个String参数,并返回一个String类型的值。下面看一个示例。

${fn:trim("AB C ")}D

转换的结果为“ AB CD ”,注意,它将只删除词尾的空格而不是全部,因此“ B ”“ C ”之间仍然留有一个空格。

阅读(2976) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~