Jsp标准标签库

首先,我们需要导入JSTL(Jsp Standard Tag Library)开发包,下载地址:https://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip

下载下来之后,解压缩,把lib文件夹下的两个jar包jstl.jar和standard.jar放在项目虚拟目录下的lib文件夹下,然后把tld文件夹下的所有文件都放在(记住是所有)WEB-INF文件夹下,如果放在了WEB-INF的子文件夹下,那么还需要在web.xml里面进行配置(其实为了使用简便,通常都会配置的,所以建议放在一个子文件下,比如tags,这样显得目录清晰)。


其中第一个是我自己定义的tld文件,其实开发包中tld文件夹下的文件不止这5个:


但是为了不出错,要全部导入,但可以不用全部配置。

然后我们可以使用这些标签了:

首先声明taglib:

其中的prefix就是当前页中代表此tag库的一个变量名,uri就是web.xml配置中<taglib-uri>指定的字符串,这个一定要一致。

使用标签库:

out标签

out标签主要用于输出内容,有三个属性,value、default和escapeXml,value指定输出的内容,可以是一个字符串,也可以是属性变量(表达式输出),default表示当输出的value不存在(也就是属性变量输出)时要显示的内容,escapeXml如果设置为true,那么">"会变成&gt,默认为true。输出格式有以下两种:


set标签

set标签可以设置属性及其值,格式如下:


可以看出,它和pageContext.setAttribute()、request.setAttribute()一样。

不仅如此,它还可以设置对象的属性:


target其实是此jsp页的属性名字,而property则是对象这个类里面的属性。




这里千万要注意,target是jsp页面属性的名字,并不是对象变量的名字,在这里是pp,而不是person。

remove标签



catch标签


if标签


choose标签


choose相当于Java的switch-case,choose相当于switch,里面的when相当于case,other相当于default,而且这些标签都自带break功能,也就是说只能执行一个条件下的内容,纠正,otherwise最多只能出现1次。


forEach标签


forTokens标签

相当于String类的split方法,而且它可以直接输出分割后的集合。



import标签


我们可以导入百度的网页:


传递参数:


url标签


我觉得这个标签的作用就是产生一个新链接,并且更好的把参数封装在一起,之后使用的时候用var指定的变量去指向。


redirect标签

相当于response.sendRedirect(url),属于客户端跳转(地址栏会变)。


国际化标签库

首先回忆一下java的国际化程序处理:

Locale类负责封装各个国家和地区的信息,通过它设置要适配的国家和地区;ResourceBundle类负责访问资源文件;MessageFormat负责处理动态文本(格式化资源文件中的占位字符串)。

先看一下这三个类的主要方法:



MessageFormat主要用到了一个静态方法:


综合用法如下:


注意中文属性文件不能直接写成中文,而是以Unicode编码的形式写入(命令行运行native2ascii.exe把中文转换成Unicode码),否则会乱码。


总之就是,先用Locale设置好地区和语言,属性文件按照Xxx_zh_CN.properties、Xxx_en_US.properties的形式去命名,ResourceBundle.getBundle()去找的时候第一个参数是文件名,只写前面的即可,java会自动根据Locale的指向去找相应的文件,.properties后缀也不用声明,java会自动加载所有.properties后缀的文件。找到资源文件之后就是获取相关value,因为资源文件中的内容全部都是key-value的形式(用空格隔开),所以按照相关的key去找即可。MessageFormat是用来处理动态文本的,资源文件中以“{0}、{1}..”的格式来声明占位符,MessageFormat的format方法的第一个参数是要格式化的内容(即得到的value),后面的一系列参数都是要替换掉占位符的字符串。

现在来看Web中的国际化处理:

首先资源文件放在WEB-INF的classes文件夹下,JSTL使用的是fmt.tld作为格式化标签库的定义文件。来看一下相关的标签:




可见相同scope下的Locale会被替换掉。





如果不想重复设置Locale,可以使用setBundle标签设置一个默认的读取资源名称,然后根据var去使用它。



数字格式化:





日期时间格式化:




反格式化日期时间:



设置时区:




Sql标签库













Xml标签库















函数标签库





  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值