[튜토리얼] JSP의 Taglib 태그 4 사용자 정의 태그의 Function 함수 사용자 정의

7067 단어 function
이전의 예는 이미 썼습니다. 시간 관계가 발표되지 않았기 때문에 이번에 가져온 것은 taglib의 의 기본 기능에 대한 소개가 끝났습니다. taglib에서 우리는 이라는 라벨을 발견했습니다. 이번에는 라벨의 기본 사용법을 간단하게 소개합니다. 라벨은 무엇을 할 수 있습니까?이것은 jsp에서 어떤 방법을 직접 호출하여 사용자 정의 방법에 따라 지정한 값을 되돌려주고 jstl 라벨을 호환하여 jsp에서 <%!% > 직접 사용하지 않도록 할 수 있습니다방법체를 정의하고 다시 호출하는 번거로움.만약 당신이 엘 언어를 사용한 적이 있다면 곧 시작할 것입니다. 사실 라벨은 방법체를 가진 엘 언어입니다.주의:function이 정의한 방법은 반드시 정적이어야 합니다. 정적이 아니라면 jstl은 정의된 방법을 식별할 수 없습니다.
Java 코드는 다음과 같습니다.
package org.lxh.taglib;



import java.util.List;



public class FunctionTag {



	public static String hello(String name) {



		return name;

	}



	public static Integer bbq(List list) {



		return list.size();

	}

}


방법은 정적이어야 합니다. 되돌아오는 값이나void 형식이 있는 방법을 정의할 수 있습니다.
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>http://lauedward.spaces.live.com</uri>

	<function>

		<!--EL -->

		<name>hello</name>

		<!-- , Java 。-->

		<function-class>org.lxh.taglib.FunctionTag</function-class>

		<!-- EL . . -->

		<function-signature>java.lang.String hello(java.lang.String)</function-signature>



	</function>



	<function>

		<name>bbq</name>

		<function-class>org.lxh.taglib.FunctionTag</function-class>

		<function-signature>java.lang.Integer bbq(java.util.List)</function-signature>

	</function>

</taglib>

주의: 에서 온전한 클래스 이름을 써야 합니다. String 형식이라면 자바를 써야 합니다.lang. String 같은 글자는 자바와 같은 일반적인 정의를 지원하지 않습니다.util.Listeclipse는 <>를 xml 형식으로 판단하기 때문에 이 범용 정의를 생략합니다.
jsp:
<%@ page language="java"contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="my"uri="/WEB-INF/tld/testFunction.tld"%>http://www.w3.org/TR/html4/loose.dtd" >
<%@page import="java.util.*"%>Insert title here
<%    List list = new ArrayList();    list.add("aa");    list.add("bb");    list.add("cc");    request.setAttribute("list", "helloword");    request.setAttribute("name", list);    Map map = new HashMap();    map.put("1","a");    map.put("2","b");    map.put("3","c");    map.put("4","d");%>

${my:hello(list)}
${my:bbq(name)}


주의: 방법을 호출할 때 반드시 형식은 같은 형식의 값을 불러와야 합니다. 그렇지 않으면 오류가 발생하지만, 방법체가 String이면list,set,map 등을 불러올 수 있습니다. 불러온 후list를 직접 호출할 수 있기 때문입니다.toString() 메서드는 문자열로 직접 출력됩니다.

좋은 웹페이지 즐겨찾기