用javac把这段代码编译成功后,下一步就要把函数的签名映射到标签库。代码示例4说明了如何把add函数映射到包含函数实现和函数签名的类。后面将说明把这段代码添加到哪儿。 代码示例4: 函数描述符 <function> <description>add x and y</description> <name>add</name> <function-class>jsp2.examples.el.Compute </function-class> <function-signature>int add(java.lang.String,java.lang.String) </function-signature> </function> 现在我们就可以编写一个JSP页面来使用这个函数。代码示例5是包含两个字段的一个表单,用户输入两个数字并按下“求和”按钮,就会调用上面的函数并把两个数相加,结果在同一个页面中显示出来。 代码示例5: math.jsp <%@ taglib prefix="my" uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib %> <HEAD> <TITLE>Functions</TITLE> </HEAD> <BODY> <H3>Add Numbers</H3> <P> <FORM action="math.jsp" method="GET"> X = <input type="text" name="x" value="${param["x"]}"> <BR> Y = <input type="text" name="y" value="${param["y"]}"> <input type="submit" value="Add Numbers"> </FORM> <P> The sum is: ${my:add(param["x"],param["y"])} </BODY> </HTML> 要运行这个例子: - 复制Compute.java并保存到C:\Tomcat5.0\webapps\jsp-examples\WEB-INF\classes\jsp2\examples\el下;
- 使用javac编译Compute.java;
- 编辑文件C:\Tomcat5.0\webapps\jsp-examples\WEB-INF\jsp2\jsp2-example-taglib.tld,把代码示例4中的代码段添加到文件中最后一个</function>标签之后,</taglib>标签之前;
- 复制math.jsp并保存到c:\Tomcat5.0\webapps\jsp-examples\jsp2-tutorial下;
- 用浏览器打开该文件。
如果一切正常,应该会看到类似如图3所示的窗口。 图3:使用函数
标签处理器JSP 1.2中传统的标签处理API由于允许标签体中包含scriptlet而变得复杂,但是现在利用表达式语言可以编写不含scriptlet的JSP网页。最终,JSP 2.0引入了一种新的标签扩展机制,称为“简单标签扩展”,这种机制有两种使用方式: - Java开发人员可以定义实现接口javax.servlet.jsp.tagext.SimpleTag的类;
- 不懂Java的网页编写人员则可以使用标签文件。
首先来看第一种方式,代码示例6给出了一个简单的标签处理器,它的作用仅仅是打印“This is my first tag! ”。 代码示例6: HelloTag.java package jsp2.examples.simpletag; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.SimpleTagSupport;import java.io.IOException; /** * SimpleTag handler that prints "This is my first tag!" */ public class HelloTag extends SimpleTagSupport { public void doTag() throws JspException, IOException { getJspContext().getOut().write("This is my first tag!"); } } 编译成功后,下一步就要在TLD中定义一个标签描述符,下面是标签描述符的例子。 代码示例7: 标签描述符 |