JSTL1.1函数标签库(functions)如fn:length 与 JSTL 自定义Function函数标签
来源:互联网 发布:sql 两个字段相等 编辑:程序博客网 时间:2024/05/16 11:35
在jstl中的fn标签也是我们在网页设计中经常要用到的很关键的标签,在使用的时候要先加上头
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>就可以使用fn标签了。
具体使用方法请参见下表:
函数
描述
fn:contains(string, substring)
如果参数string中包含参数substring,返回true
fn:containsIgnoreCase(string, substring)
如果参数string中包含参数substring(忽略大小写),返回true
fn:endsWith(string, suffix)
如果参数 string 以参数suffix结尾,返回true
fn:escapeXml(string)
将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
fn:indexOf(string, substring)
返回参数substring在参数string中第一次出现的位置
fn:join(array, separator)
将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
fn:length(item)
返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。
fn:replace(string, before, after)
返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
fn:split(string, separator)
返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
fn:startsWith(string, prefix)
如果参数string以参数prefix
开头,返回true
fn:substring(string, begin, end)
返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符
fn:substringAfter(string, substring)
返回参数substring在参数string中后面的那一部分字符串
fn:substringBefore(string, substring)
返回参数substring在参数string中前面的那一部分字符串
fn:toLowerCase(string)
将参数string所有的字符变为小写,并将其返回
fn:toUpperCase(string)
将参数string所有的字符变为大写,并将其返回
fn:trim(string)
去除参数string 首尾的空格,并将其返回
自定义JSP中的Taglib标签之自定义标签中的Function函数
<function>标签可以做什么呢?它可以让我们在jsp用直接调用某个方法,根据自定义的方法返回指定的值,兼容jstl标签, 省去了在jsp中直接使用<%!%>来定义方法体再调用的繁琐.如果你用过el语言的话估计会很快上手,其实<function>标签就是一个拥有方法体的el语言.注意:function所定义的方法必须需要是静态的,如果不是静态的话jstl 是不能识别所定义的方法.
Java代码如下:
package org.lxh.taglib;import java.util.List;public class FunctionTag {public static String hello(String name) {return name;}public static Integer bbq(List list) {return list.size();}}
方法必须静态,可以定义有返回值或者void类型的方法.
tld:
<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><short-name>my</short-name><uri>http://lauedward.spaces.live.com</uri><function><!--EL页面调用名字--><name>hello</name><!--指定标签的处理类,指定了标签由哪个Java类来处理。--><function-class>org.lxh.taglib.FunctionTag</function-class><!--指定EL页面调用名字中实际调用的方法.指定处理类的实际方法.参数和回调函数要写完整路径--><function-signature>java.lang.String hello(java.lang.String)</function-signature></function><function><name>bbq</name><function-class>org.lxh.taglib.FunctionTag</function-class><function-signature>java.lang.Integer bbq(java.util.List)</function-signature></function></taglib>
注意:在<function-signature>需要写完整的类名,假如是String类型的话就必须写 java.lang.String这样字,不支持泛型的定义如 java.util.List<java.lang.String>eclipse会把<>当作xml的格式来判断的,所以就省略该泛型的定义.
jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="my" uri="/WEB-INF/tld/testFunction.tld"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.util.*"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
request.setAttribute("list", "helloword");
request.setAttribute("name", list);
Map map = new HashMap();
map.put("1","a");
map.put("2","b");
map.put("3","c");
map.put("4","d");
%>
<br>
${my:hello(list)}
<br>
${my:bbq(name)}
<br>
</body>
</html>
注意:调用方法的时候必须类型要传入相同类型的值,否则的话会报错,不过对于方法体是String的话,是可以传入list,set,map那些,因为传入后会直接调用list的.toString()方法直接当字符串输出.
- JSTL1.1函数标签库(functions)如fn:length 与 JSTL 自定义Function函数标签
- JSTL1.1函数标签库(functions)如fn:length
- JSTL1.1函数标签库(functions)如fn:length
- JSTL1.1函数标签库(functions)
- JSTL fn函数标签库
- JSTL 标签 fn 函数
- JSTL 自定义Function函数标签
- JSTL 自定义Function函数标签
- JSTL自定义function函数标签
- JSTL函数标签库 fn标签
- JSTL函数标签库 fn标签
- JSTL函数标签库 fn标签
- JSTL函数标签库 fn标签
- JSTL函数标签库 fn标签
- JSTL函数标签库 fn标签
- JSTL函数标签库的fn标签
- JSTL函数标签库fn标签
- JSTL函数标签库 fn标签
- 基于MVC模式的Adapter的ListView
- 用汇编的眼光看C++ (之x86汇编)
- 两分钟彻底让你明白Android Activity生命周期(图文)!
- Linux统治超级计算领域的九个理由
- Spring AOP(面向切面编程)【AOP中的术语】
- JSTL1.1函数标签库(functions)如fn:length 与 JSTL 自定义Function函数标签
- java.util.NoSuchElementException: Hashtable Enumerator
- eclipse 快捷键使用
- ConcurrentHashMap之实现细节
- 关于activity_main.xml与fragment_main.xml的空指针问题
- 百度员工离职总结:如何做个好员工
- MYSQL入门学习之二十九:MySQL访问控制实现原理
- 辛星解读PHP中设置正确的时区
- 开源是如何让Android成为移动市场大佬的?