javaweb----EL式を再学習(2)--TLD
次の記事に続きます.
(4)javaメソッドを呼び出す:
呼び出し方法を自分で書く必要はありません.他の人が書いたラベルライブラリを呼び出すだけでいいです.fnラベルライブラリ~クラスにelに呼び出す方法が含まれています.この方法は静的な方法でなければなりません.tldファイルを書いて、呼び出す静的メソッドを説明します.jspページでtaglibコマンドはtldファイルを現在のjspページに導入します.jspページで記述されたメソッドを呼び出すことができます
例:1.まずクラスを書きます.
2.jspページにこのクラスを知ってもらうために、tldファイルを書いて彼に説明します(WEB-INFディレクトリの下に置かなければなりません.libとclassesディレクトリの外に出なければなりません)バージョン2.0以上を選んで、eclipseが生成したそれはヒントがありません.schemaファイルが間違っているので、以下に注釈したのは前の間違いで、注釈がないのは修正後です.
3.jspにこのtldファイルをインポートする
4.使用
結果:%E 5%8 C%97%E 4%BA%AC
付属の:
結果:ASDFASDFKJKJKJJDSAGHIDSFGGU
fnなどの詳細ラベル関数ライブラリの参照
(4)javaメソッドを呼び出す:
呼び出し方法を自分で書く必要はありません.他の人が書いたラベルライブラリを呼び出すだけでいいです.fnラベルライブラリ~クラスにelに呼び出す方法が含まれています.この方法は静的な方法でなければなりません.tldファイルを書いて、呼び出す静的メソッドを説明します.jspページでtaglibコマンドはtldファイルを現在のjspページに導入します.jspページで記述されたメソッドを呼び出すことができます
例:1.まずクラスを書きます.
package com.it.fangchao.el;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class ELFunc {
public static String MyEncode(String str,String code) {
try {
return URLEncoder.encode(str, code);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException();
}
}
}
2.jspページにこのクラスを知ってもらうために、tldファイルを書いて彼に説明します(WEB-INFディレクトリの下に置かなければなりません.libとclassesディレクトリの外に出なければなりません)バージョン2.0以上を選んで、eclipseが生成したそれはヒントがありません.schemaファイルが間違っているので、以下に注釈したのは前の間違いで、注釈がないのは修正後です.
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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">
<!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"> -->
<tlib-version>1.0</tlib-version>
<short-name>MyELFunc</short-name>
<uri>http://www.fangchao.com/MyELFunc</uri>
<function>
<name>URLEnc</name>
<function-class>com.it.fangchao.el.ELFunc</function-class>
<function-signature>
java.lang.String MyEncode(java.lang.String,java.lang.String)
</function-signature>
</function>
</taglib>
3.jspにこのtldファイルをインポートする
<%@ taglib uri="http://www.itheima.com/MyELFunc" prefix="MyELFunc" %>
4.使用
< body>
${MyELFunc:URLEnc(" ","utf-8") }
</body>
結果:%E 5%8 C%97%E 4%BA%AC
付属の:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
${fn:toUpperCase("asdfasdfKJKJKJdsagHIHidsfgGUGu") }
結果:ASDFASDFKJKJKJJDSAGHIDSFGGU
fnなどの詳細ラベル関数ライブラリの参照