jsp 调用java函数

1.编写java类

[java]  view plain  copy
  1. package myEL;  
  2.   
  3. public class ELFun {  
  4.       
  5.   public static String processStr(String s) {  
  6.       
  7.     s=s.toUpperCase();  
  8.     return s;  
  9.       
  10. }  
  11.       
  12. }  

EL函数对应的java类的方法必须是静态的

2.编写tld文件

[html]  view plain  copy
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"  
  3.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">  
  4.  <tlib-version>1.0tlib-version>  
  5.  <uri>myelfunuri>  
  6.  <function>  
  7.   <name>elfunctionname>  
  8.   <function-class>myEL.ELFunfunction-class>  
  9.   <function-signature>  
  10.      java.lang.String processStr(java.lang.String)  
  11.   function-signature>  
  12.  function>>  
  13. taglib>  

TLD文件的扩展名必须是.tld

3.web.xml配置

[html]  view plain  copy
  1. <jsp-config>  
  2.   <taglib>  
  3.   <taglib-uri>/WEB-INF/TLD/elfun.tld  
  4.   taglib-uri>  
  5.   <taglib-location>  
  6.   /WEB-INF/TLD/elfun.tld  
  7.   taglib-location>  
  8.   taglib>  
  9.  jsp-config>  

4.jsp中调用

[html]  view plain  copy
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6. <%@ taglib uri="/WEB-INF/TLD/elfun.tld"  prefix="elfun" %>  
  7. >  
  8. <html>  
  9.   <head>  
  10.     <base href="<%=basePath%>">  
  11.       
  12.     <title>My JSP 'elfun.jsp' starting pagetitle>  
  13.       
  14.     <meta http-equiv="pragma" content="no-cache">  
  15.     <meta http-equiv="cache-control" content="no-cache">  
  16.     <meta http-equiv="expires" content="0">      
  17.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  18.     <meta http-equiv="description" content="This is my page">  
  19.       
  20.   
  21.   head>  
  22.     
  23.   <body>  
  24.    <form method="POST">  
  25.                   请输入一个字符串:  
  26.      <input type="text" name="text"/>  
  27.      <p>  
  28.      <input type="submit" value ="提交"/>  
  29.    form>  
  30.    <p>  
  31.                           直接输出文本框中的内容:  
  32.     <p>  
  33.        ${param.text }  
  34.     <p>  
  35.       
  36.      ${elfun:elfunction(param.text)}  
  37.     <p>  
  38.       
  39.     <br>  
  40.   body>  
  41. html>  

如果用URI引用TLD文件,JSP引擎会先在WEB-INF目录及子目录中寻找所有的*.tld文件,如果发现某个.tld文件中的标签定义的URI和talib中的uri属性的值相等,就会记住这个.tld路径,在生成servlet的同时就会将这个TLD文件的路径也加进来。

你可能感兴趣的:(java)