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

全部博文(329)

文章存档

2013年(244)

2012年(46)

2011年(39)

我的朋友

分类: 系统运维

2012-03-21 21:18:14

 

jstl的SQL标签库

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=?
       
   

 

Jstl的XML标签库

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

1.标签

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

属性说明

属性名

说明

EL

类型

必须

默认值

doc

指定解析的xml文件

是

String/Reader

是

无

var

存储解析后的xml文件

否

String

否

无

scope

指定var的JSP范围

否

String

否

page

varDom

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

否

String

否

无

scopeDom

指定varDom的JSP范围

否

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属性范围中。

【语法】:

【参数说明】:

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

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

(3)指定var的JSP属性范围。

4.

主要用于条件判断。

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

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

> 本体内容

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

【参数说明】:

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

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

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

5.、和标签

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

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

【语法】:

其中只有有属性。

【语法】:

6.标签

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

标签属性说明

属性名

说明

EL

类型

必须

默认值

select

指定使用的XPath语句

否

String

是

无

var

用于存储表达式的结果

否

String

否

无

varStatus

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

否

String

否

无

begin

循环的起始位置

是

int

否

无

end

循环的终止位置

是

int

否

无

7.标签

使用该标签可以轻松的实现xml到XSLT的转化。

标签属性说明

属性名

说明

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

【参数说明】:

(1)name指定参数的名称。

(2)value指定参数值。

 

 

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

       长度函数:fn:length
      
字符串处理函数:fn:contains、fn:containsIgnoreCase、fn:endsWith、fn:escapeXml、 fn:indexOf、fn:join、fn:replace、fn:split、fn:startsWith、fn:substring、 fn:substringAfter、fn:substringBefore、fn:toLowerCase、fn:toUpperCase、 fn:trim

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

1 长度函数 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 ”。

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

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

 

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

 

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

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

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

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

9 分隔符函数 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 ”之间仍然留有一个空格。

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