现在使用的许多开源框架中都提供了大量的标签库供我们使用.但是在实际应用中总会出现我们需要但暂时无法找到或者没有提供的一些标签.所以我们可以学习下一些jstl一些标签和函数的定义.
对于自定义标签的定义这里有个博客已经详细了讲解了
[url]http://hanxin830311.iteye.com/blog/208486[/url]
这文章对于一些操作流程和解析都已经够我们初步建立自己的标签足够使用了.
而自定义标签我觉得使用的场景还没自定义函数多.因为函数可能是我们自己所写的一些类的方法操作需要在页面中操作之类的.我自己项目中也是使用到了自定义函数(简单的使用)
[b]1.开发自己需要使用的自定义函数.[/b]
[color=darkred]如何想使用spring赋值的话.只需要定义
private static AclService aclService;
不过get.set.注意不要使用static不然spring依赖注入将无效果.
spring只需要配置
<bean id="aclService" class="包路径.AclServiceImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="helloWordFunction " class="HelloWordFunction路径">
<property name="aclService" ref="aclService"></property>
</bean>
[/color]
[b]2.定义jstl函数标签[/b]
在WEB-INF文件夹下编写my.tld文件.
[b]3.在页面中进行调用[/b]
因为在使用中在页面之间使用my.tld中uri的话.将有时候无法找到.所以在web.xml中需要配置下
访问页面index.jsp
[color=darkred]如果不配置web.xml的话.可以使用<%@ taglib prefix="my" uri="="/WEB-INF/myfunctions" %>[/color]
总结:对于这个函数的自定义在开发中使用起来配置起来也不难.在一些应用中操作起来非常方便.也使得开发可以更加灵活.减少Action中代码量。对于自定义标签和函数在定义中可以更加了解到各个框架标签的意义.
下一篇文章可能写dojo树和dtree一些简单使用.dwr的一些问题
对于自定义标签的定义这里有个博客已经详细了讲解了
[url]http://hanxin830311.iteye.com/blog/208486[/url]
这文章对于一些操作流程和解析都已经够我们初步建立自己的标签足够使用了.
而自定义标签我觉得使用的场景还没自定义函数多.因为函数可能是我们自己所写的一些类的方法操作需要在页面中操作之类的.我自己项目中也是使用到了自定义函数(简单的使用)
[b]1.开发自己需要使用的自定义函数.[/b]
package com.jstl.function;
//随便一个类.顶一个可以传输参数的方法就可以
public class HelloWordFunction {
public static String hello(String name) {//注意方法的定义.要是静态的方法才能被jstl作为标签使用.
return "hello"+name;
}
}
[color=darkred]如何想使用spring赋值的话.只需要定义
private static AclService aclService;
不过get.set.注意不要使用static不然spring依赖注入将无效果.
spring只需要配置
<bean id="aclService" class="包路径.AclServiceImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="helloWordFunction " class="HelloWordFunction路径">
<property name="aclService" ref="aclService"></property>
</bean>
[/color]
[b]2.定义jstl函数标签[/b]
在WEB-INF文件夹下编写my.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,相当于指定该标签库的唯一标识。如上斜体字代码所示,JSP页面中使用标签库时就是根据该URI属性来定位标签库的-->
<uri>http://www.changtu.com/check/functions</uri>
<function>
<description>say hello world</description><!-- 对这个EL方法的描述 -->
<name>hello</name><!--EL页面调用名字-->
<function-class>com.jstl.function.HelloWordFunction</function-class><!--指定标签的处理类,指定了标签由哪个Java类来处理。-->
<function-signature>java.lang.String hello(java.lang.String)</function-signature><!--指定EL页面调用名字中实际调用的方法.指定处理类的实际方法.参数和回调函数要写完整路径-->
</function>
</taglib>
[b]3.在页面中进行调用[/b]
因为在使用中在页面之间使用my.tld中uri的话.将有时候无法找到.所以在web.xml中需要配置下
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- -->
<jsp-config>
<taglib>
<taglib-uri>http://www.changtu.com/myfunctions</taglib-uri>
<taglib-location>/WEB-INF/my.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
访问页面index.jsp
<%@ page pageEncoding="gb2312" contentType="text/html; charset=gb2312"%>
<%@ taglib prefix="my" uri="http://www.changtu.com/myfunctions" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>check</title>
</head>
<body>
<c:out value="${my:hello(world)}"></c:out>
</body>
</html>
[color=darkred]如果不配置web.xml的话.可以使用<%@ taglib prefix="my" uri="="/WEB-INF/myfunctions" %>[/color]
总结:对于这个函数的自定义在开发中使用起来配置起来也不难.在一些应用中操作起来非常方便.也使得开发可以更加灵活.减少Action中代码量。对于自定义标签和函数在定义中可以更加了解到各个框架标签的意义.
下一篇文章可能写dojo树和dtree一些简单使用.dwr的一些问题