JAVA

[1028web JSTL ]커스텀 라이브러리

error 1. 

문제 Integer로 정의된 Map 이 연산식으로 만들어진 숫자키를 읽지 못함 cannot get Map Integer key's value
검색  
해결 taglib 로 Integer 로 형변환하는 태그 생성해서 호출함 정상 확인

커스텀 테그 라이브러리 생성

1. taglibs 프로젝트에 등록

- pom.xml  taglibs-standard-impl 추가. 

- maven Reload project

		<dependency>
			<groupId>org.apache.taglibs</groupId>
			<artifactId>taglibs-standard-impl</artifactId>
			<version>1.2.5</version>
		</dependency>

2. 동작할 메소드 생성

- static으로 생성, 내부에 static 선언의 필요할수 있으니 주의할것.

public class MimimiTagLibHandler extends SimpleTagSupport {

    public static Integer integerValueOf(int number){
        return new Integer(number);
    }
}

3. jsp에서 호출할수있게 설정

- /WEB-INF/임의 폴더/XXXX.tld 추가. 

- show-name <c:   부분  <mimimi:

- uri :  jsp taglib 선언시 주소 와 맵핑 

- function-class : 클래스 정보,  function-signature : 메소드 정보

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xml="http://www.w3.org/XML/1998/namespace"  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 ">

    <description>mimimi tag library</description>
    <tlib-version>1.0</tlib-version>
    <short-name>mimimi</short-name>
    <uri>/WEB-INF/taglib/mimimi-taglib.tld</uri>

    <function>
        <name>integerValueOf</name>
        <function-class>com.web.team.handler.MimimiTagLibHandler</function-class>
        <function-signature>java.lang.Integer integerValueOf(int)</function-signature>
    </function>
</taglib>

4. jsp 호출 사용

<%@ taglib prefix="mimimi" uri="/WEB-INF/taglib/mimimi-taglib.tld" %>
${mimimi:integerValueOf(bibleOn.chapterNo-1)}

 

참고 : https://dion-ko.tistory.com/47

'JAVA' 카테고리의 다른 글

카페24 jsp 호스팅  (0) 2022.07.26
VelocityEngine  (0) 2022.02.19
Java 프로그래밍 언어의 코드 규칙, java 표준 코딩  (0) 2021.12.16
[1028web annotation] 어노테이션  (0) 2021.08.29