본문 바로가기

JSP

커스텀액션의 본체 내용을 조작하는 태그클래스

ReplaceTag.java 

package customaction;

 

import java.io.IOException;

import java.io.StringWriter;

 

import javax.servlet.jsp.JspContext;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.JspFragment;

import javax.servlet.jsp.tagext.SimpleTagSupport;

 

import org.apache.jasper.runtime.JspFragmentHelper;

 

public class ReplaceTag extends SimpleTagSupport {

    private String oldWord;

    private String newWord;

   

    public void setOldWord(String oldWord) {

         this.oldWord = oldWord;

    }

    public void setNewWord(String newWord) {

         this.newWord = newWord;

    }

    @Override

    public void doTag() throws JspException, IOException {

         // TODO Auto-generated method stub

         JspContext context = getJspContext();

         JspWriter out = context.getOut();

         JspFragment body = getJspBody();

         StringWriter writer = new StringWriter();

         body.invoke(writer);

         String str = writer.toString();

        

         String newStr = str.replace(oldWord, newWord);

        

         out.println(newStr);

         return;

    }

   }

 

 customaction.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>tool</short-name>

    

     

     <tag>

         <name>replace</name>

         <tag-class>customaction.ReplaceTag</tag-class>

         <body-content>scriptless</body-content>

         <attribute>

             <name>oldWord</name>

             <type>java.lang.String</type>

         </attribute>

         <attribute>

             <name>newWord</name>

             <type>java.lang.String</type>

         </attribute>

     </tag>

 

</taglib>

   

 

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

   

<%@taglib prefix="tool" uri="/taglibs/customaction.tld" %>

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<tool:replace oldWord="비행기" newWord="제트기">

떴다 떴다 비행기 날아라 날아라 <br />

높이 높이 날아라 우리 비행기 <br />

</tool:replace>

</body>

</html>