java标签库分分为上述几种,一般经常使用的是核心和函数,接下来会分别讲解这几种,和常见的用法。

一般标签库会和el表达式一起使用,所以在学习标签库前最后也学习下el表达式的使用。

导入后展开

可以从jar包查看相对应的标签库得tld文档,里面会描述每个标签的说明和用法

先从核心标签库开始

tld文档有几个重点,第一个就是uri,这是等下在jsp页面引入标签库时是的uri

基本一个tld文档的重点内容就这么多了,分开看其实也不是很难

 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

在jsp页面头使用该标签来导入标签库,uri对应tld文档中的uri,prefix标识符

 <jsp:useBean id="userBean"  class="bean.userBean" scope="page"></jsp:useBean><!-- 创建出一个实体bean -->
<c:set target="${userBean}" property="name">孤傲苍狼</c:set>
获取属性:<jsp:getProperty property="name" name="userBean"/>
<!-- 使用核心标签库中的set标签对实体bean赋值 -->

jsp:userBean 使用jsp内置标签库实例化出一个实体类,并且存入page域中(默认page),在使用以c为别名的核心标签库种的set标签进行赋值和取值

target要赋值的对象,记住这里得使用el表达式,对应上面的id名,property要赋值的对象的属性名

记住基本上标签库中的对象和值都是存放在域中的,默认是page。

在使用getProperty标签 name要取值的对象名  property要去值的属性名

<c:remove var="userBean"/><!-- 要移除的对象名,不使用el表达式 -->
<c:catch var="errorInfo"><!-- 捕获异常,var异常的信息对象 -->
<jsp:getProperty property="name" name="userBean"/>
</c:catch>
<!-- 异常的信息获取 -->
异常:<c:out value="${errorInfo }"/><br/>
异常 errorInfo.getMessage:<c:out value="${errorInfo.message }"></c:out><br/>
异常 errorInfo.getCause: <c:out value="${errorInfo.cause }"></c:out><br/>
异常 errorInfo.getStackTrace: <c:out value="${errorInfo.stackTrace }"></c:out>
<c:if test="${errorInfo ne null }" var="resutl" scope="page">
结果<c:out value="${resutl}"></c:out>
</c:if>
<c:set var="score" value="0"></c:set>
<c:choose>
<!-- 当test的值为真的时候执行 -->
<c:when test="${score>=90 }">牛逼啊</c:when>
<c:when test="${score>=70 }">可以啊</c:when>
<!-- 其他情况 -->
<c:otherwise>弱鸡</c:otherwise>
</c:choose>
<c:out value="begin起始位置,items=要循环的对象,var=每次的元素end结束位置,step自增数 varStatus当前信息"></c:out><br/>
<c:forEach var="va" items="${list}" begin="0" end="5" step="2" varStatus="s">
值:<c:out value="${va}"/>
下标:<c:out value="${s.index}" />
是否是第一: <c:out value="${s.first}" />
是否是最后一个: <c:out value="${s.last}" />
<br/>
</c:forEach>

核心标签库的常用这么多,其他的可以查看tld

函数标签库

<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

转换大写
${fn:toLowerCase("Www.CNBLOGS.COM") }

函数标签只能写在el表达式里,大部分都是对字符串的处理,比如格式化成数组,检索indexof等

xml标签库

  <h3>xml标签库</h3>
<c:import url="http://localhost:8080/jspStudey/test.xml" var="bookInfo"/>
<c:import url="http://localhost:8080/jspStudey/test.xsl" var="xslt"/>
<x:parse xml="${bookInfo }" var="output"/>
<%-- <x:out select="$output/books/book[1]/name" /> --%>
<x:transform xml="${bookInfo }" xslt="${xslt}"/>

使用import导入xml,在使用 x:parse 进行处理。xml=xml的资源对象 var=处理好的xml对象

x:out 把值输出跟核心的out差不多,xml处理后要输出只能用这个这个输出 select查询,第一个$(没有括号) 处理好的var名 /分割 根节点名 /子节点名

sql标签库

 <sql:setDataSource var="con"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databaseName=work" user="sa" password="sasa"/>
<sql:query var="result" dataSource="${con }" >select * from stu;</sql:query>
<c:forEach var="row" items="${result.rows }">
<c:out value="${row.stuId }"></c:out>
<c:out value="${row.stuname }"/>
</c:forEach>
<%-- <sql:update dataSource="${con }" var="result" >insert into stu values(1006,'gaoxiao2',20,80);</sql:update> --%>
<c:set var="empId" value="1003"></c:set>
<sql:update dataSource="${con}" var="count" >
delete from stu where stuId=?;
<sql:param value="${empId}" />
</sql:update>
<c:if test="${count eq 0}">没有删除数据</c:if>
</body>

本人在学sql标签库很纳闷,额还是觉得在jsp上写sql语句很别扭很不喜欢

setDataSource 设置数据源 var=数据源对象名  driver=驱动类  url=连接语句 user=数据库用户名 password=密码 这里使用的是sqlserver 不同的数据库和版本不同咯
query 查询语句 dataSource=数据源名 中间查询语句
然后循环输出 其他看代码应该看的懂把 国际话标签库
本人觉得这个会比较麻烦点,会讲的详细点

src下的包里的资源文件,最后一个是模版文件,很重要。其他文件的命名必须是   模版文件名_国家名.properties  这是规定,原因是检索的机制

系统会去检索这个资源包下的文件,指定模版文件名,然后会根据当前的国家名,比如中国就时zh,然后它会在模版名后面家上 _ 下划线 然后在加上国家名,

然后去检索这文件名的文件

文件的内容 :以键值对的形式

jsp使用

 <%
//request.getLocale()获取访问用户所在的国家地区
ResourceBundle myResourcesBundle=ResourceBundle.getBundle("myproperties.myproperties",request.getLocale());
%>
<body>
<form>
<%=myResourcesBundle.getString("username") %>: <%=myResourcesBundle.getString("password") %>
</form> <fmt:setBundle basename="myproperties.myproperties" var="bundle"/>
<fmt:message bundle="${bundle }" key="username"></fmt:message> : <fmt:message bundle="${bundle }" key="password"></fmt:message>

先贴上代码,在详细的讲,前面是小脚本的写法,后面是fmt国际化标签库得写法,标签库就是这样,把事情写在类了,而在jsp页面上进行精细化,让jsp变的很简洁

小脚本中 先获取当前的国家名 然后2个参数,一个资源的模版文件的路径 ,存放在src根下,第二个是国家名,然后会自动去找他该文件,在通过名字就可以获取到对应的值

标签库更简单,指定名字后就可以直接获取了。

注意的是资源文件,中文的进行转码,jdk中有工具可以进行转码的,native2ascii.exe可以使用这个查询对应的ascall码

差不多就这样了,标签库不是很难,主要的就是得的看的懂el表达式和tld文档,如果看的懂基本上就使用就没问题了。而且在后面自定义标签库时也会轻松很多。

快1点了,第一篇博客差不多该结束了。送上我老师的一句话,拿来主义,共享精神。

java 标签库(核心,xml,sql ,国际化,函数)的更多相关文章

  1. JSTL标签库--核心标签库

    ->JSTL的使用和EL表达式是分不开的 ->JSTL标签库分为5类 1.核心标签库(这里只介绍该标签库) 2.I18N格式化标签库 3.SQL标签库 4.XML标签库 5.函数标签库 - ...

  2. JSP标准标签库(JSTL)--XML标签库 x

    ³在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理.  XML标 ...

  3. jsp jstl标签库核心标签

    JSTL标签库介绍 JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的.使用标签的目的就是不希望在jsp页面中出现java逻辑代码 全称:JSTL标签库分类 核心标签库使用 ...

  4. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

    我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用   Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ...

  5. java攻城师之路--复习java web之jsp入门_El表达式_JSTL标签库

    JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP ...

  6. JSTL标签库的基本教程之核心标签库(一)

    JSTL介绍 Java Server Pages Standard Tag Libray(JSTL):JSP标准标签库,它封装了JSP应用的通用核心功能.JSTL支持通用的.结构化的任务,比如迭代,条 ...

  7. 复习java web之jsp入门_El表达式_JSTL标签库

    JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP ...

  8. JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)

    JSTL  JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用:   提供给Java Web开发者一个标准通用的标签函数库   和E ...

  9. Java Web程序设计笔记 • 【第10章 JSTL标签库】

    全部章节   >>>> 本章目录 10.1 JSTL 概述 10.1.1 JSTL 简介 10.1.1 JSTL 使用 10.1.2 实践练习 10.2 核心标签库 10.2. ...

随机推荐

  1. POJ 2251 Dungeon Master(3D迷宫 bfs)

    传送门 Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 28416   Accepted: 11 ...

  2. [Tip]重写PanGestureRecognizer

    目标 识别当前pan方向是指定方向 需要API 重写- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 获取所在view ...

  3. linux下安装jdk

    第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 Java -version ,会有下面的信息: Javaversio ...

  4. css3 圆角

    -moz-border-radius: 15px; /* Gecko browsers */ -webkit-border-radius: 15px; /* Webkit browsers */ bo ...

  5. 【先定一个小目标】Redis 安装成windows服务-开机自启

    1.第一步安装成windows服务的,开机自启动 redis-server --service-install redis.windows.conf 2.启动\关闭 redis-server --se ...

  6. mysql 基础操作一

    1.登录数据库 mysql -u root -p 2.查看数据库 show databases; 3.进入数据库 use  数据库名 4.查看该数据库中的表 show tables; 5.查看某一表中 ...

  7. STM32f10xxx 之 GPIO口配置

    背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...

  8. 码云以及git使用

    码云的使用方法以及git的连用 创建公钥的方法 打开码云,点击个人资料---->SSH公钥---->点击怎样生成公钥 SSH Keys ssh keys可以让你在你的电脑和Git@OSC知 ...

  9. Spark 官方文档(2)——集群模式

    Spark版本:1.6.2 简介:本文档简短的介绍了spark如何在集群中运行,便于理解spark相关组件.可以通过阅读应用提交文档了解如何在集群中提交应用. 组件 spark应用程序通过主程序的Sp ...

  10. 3d转换-正方体-Html5Css3-遁地龙卷风

    (-1) 写在前面 我用的是chrome49,这个案例是从网上看到的,向这位同行致敬,建议大家在记录自己学习感悟时,向我一样加上笔名,被转载的时候还能留下点东西. 在研究slice-box.js的时候 ...