首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jsp的自定义标签跟函数

2012-10-26 
jsp的自定义标签和函数有时候jsp和struts的标签不能提供我们想要的要求,那么自定义标签(jsp函数)就会给我

jsp的自定义标签和函数
有时候jsp和struts的标签不能提供我们想要的要求,那么自定义标签(jsp函数)就会给我们带来很大的方便,而且看起来很清晰,废话少说,首先看看这个自定义标签的定义
1、自定义标签test.xml

<?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">      <description>TEST 1.0 library</description>  <display-name>TESTTag</display-name>  <tlib-version>1.0</tlib-version>  <short-name>test</short-name>  <uri></uri>  <!-- 标签 -->  <tag>  <name>listValueName</name>  <tag-class>com.test.frame.tags.ListValueTag</tag-class>  <body-content>empty</body-content>    <attribute>  <name>type</name>  <required>true</required>  </attribute>  <attribute>  <name>value</name>  <required>true</required>  <rtexprvalue>true</rtexprvalue><!-- 设置是否支持EL表达式 -->  </attribute>  </tag>  <!-- 函数 -->  <function>     <name>getParmMapValue</name>     <function-class>com.test.frame.tags.Functions</function-class>      <function-signature> java.lang.String getParmMapValue(java.lang.String)</function-signature>  </function></taglib>

上面就是自定义标签test.xml的定义内容,标签中这个<attribute>表示传递的参数,上面表示传递了2个参数。函数中<function-signature>表示函数签名,和java的方法定义写法很像。
2、标签的具体实现java类
package com.test.frame.tags;/** * 自定义标签 */import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.tagext.SimpleTagSupport;public class ListValueTag extends SimpleTagSupport {private String type;private String value;public String getType() {return type;}public void setType(String type) {this.type = type;}public String getValue() {return value;}public void setValue(String value) {this.value = value;}@SuppressWarnings("unchecked")public void doTag() throws JspException, IOException{String name = "";if(type != null && value != null){    //这里就是你需要通过你传递的参数得到你想要值    name = type + " is " + value;}JspWriter out = this.getJspContext().getOut();out.print(name);}}

3、函数的具体实现java类
package com.test.frame.tags;public class Functions {/** * 返回参数映射值 * @param paramName 参数名 * @param parms 参数 * @return */public static String getParmMapValue(String parmName){String result = "";if(parmName != null){    result = parmName + " is Over";}return result;}}

4、标签和函数在jsp中的用法
首先引入这个标签:
<%@ taglib uri="/WEB-INF/mln.tld" prefix="test"%>

标签和函数的调用方法
测试:<test:listValueName type="MayTag" value="Over"/>测试:<input type="text" id="test" name="test" value="${mln:getParmMapValue('MayFunction')}" >

上面测试的结果:
测试:MayTag is Over
测试:MayFunction is Over(在输入框中)
5、以上就是标签和函数的用法和实现,如果你发现错误或知道更好的方法请指教!!

热点排行
Bad Request.