java 标签库(核心,xml,sql ,国际化,函数)
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 ,国际化,函数)的更多相关文章
- JSTL标签库--核心标签库
->JSTL的使用和EL表达式是分不开的 ->JSTL标签库分为5类 1.核心标签库(这里只介绍该标签库) 2.I18N格式化标签库 3.SQL标签库 4.XML标签库 5.函数标签库 - ...
- JSP标准标签库(JSTL)--XML标签库 x
³在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理. XML标 ...
- jsp jstl标签库核心标签
JSTL标签库介绍 JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的.使用标签的目的就是不希望在jsp页面中出现java逻辑代码 全称:JSTL标签库分类 核心标签库使用 ...
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ...
- java攻城师之路--复习java web之jsp入门_El表达式_JSTL标签库
JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP ...
- JSTL标签库的基本教程之核心标签库(一)
JSTL介绍 Java Server Pages Standard Tag Libray(JSTL):JSP标准标签库,它封装了JSP应用的通用核心功能.JSTL支持通用的.结构化的任务,比如迭代,条 ...
- 复习java web之jsp入门_El表达式_JSTL标签库
JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP ...
- JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)
JSTL JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用: 提供给Java Web开发者一个标准通用的标签函数库 和E ...
- Java Web程序设计笔记 • 【第10章 JSTL标签库】
全部章节 >>>> 本章目录 10.1 JSTL 概述 10.1.1 JSTL 简介 10.1.1 JSTL 使用 10.1.2 实践练习 10.2 核心标签库 10.2. ...
随机推荐
- Cordova应用程序修改启动画面或者Icon
1) 制作启动画面图片或icon ionic resources //同时生成icon和splash ionic resources --icon //只生成icon ionic resources ...
- a版本十日冲刺总汇
DAY ONE: http://www.cnblogs.com/aruba/p/6041243.html 2016-11-08 DAY TWO: http://www.cnblogs.com/arub ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- adb工具获取appPackage和appActivity
1,手机连接电脑,打开手机调试功能,并运行待测试APP,终端执行: adb shell 2,接着,执行: dumpsys window windows | grep -E 'mFocusedApp' ...
- weiphp踩坑记录
记录使用weiphp过程中遇到的问题及解决办法: 1.按照网上的教程创建插件怎么没有效果?replyText没有回复信息? 后台清除缓存即可!
- 利用filter过虑用户请求URI显示对应页面内容
目的:只是想验证一下filter对URI的过滤 流程讲解:浏览器请求URI,所有请求都走过虑器,在过滤器中处理符合某种请求的URI然后显示对应的页面内容 有2个JSP页面: index.jsp: &l ...
- 3种方法修改PHP时区
PHP5.2.4之前的版本无需设置时区.下面是修改PHP时区的三个办法. 1.修改PHP.ini这个文件 找到date.timezone这行,去掉前面的分号,改成: date.timezone = A ...
- mysql 控制台 快捷方式
程序--附件--命令提示符 cd C:\Program Files\MySQL\MySQL Server 5.5\bin 我安装的5.5的默认目录,或者也可以增加path路径,直接打开cmd就可以登陆 ...
- .net core教程
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc
- 浅谈JavaScript、ES5、ES6
// http://es6.ruanyifeng.com/#docs/intro (ES6 文档) 什么是JavaScript JavaScript一种动态类型.弱类型.基于原型的客户端脚本语言,用来 ...