plugin 액션은 JSP 페이지에 자바 컴포넌트를 삽입할 때 사용됩니다. 이 액션은 접속한 브라우저의 종류를 자동으로 판별하고, 브라우저에 맞게 <object> 또는 <embed> 태그를 적절히 삽입합니다.
plugin 액션의 동작 방식
만약 실행에 필요한 플러그인이 클라이언트에 설치되어 있지 않다면, 해당 플러그인을 자동으로 다운로드한 후 자바 컴포넌트를 실행합니다. 여기서 자바 컴포넌트는 애플릿(Applet) 또는 자바빈(JavaBean)이 될 수 있습니다.
plugin 액션에는 자바 컴포넌트의 형태를 지정하는 데 쓰이는 일반적인 HTML 태그들에 대응하는 여러 속성들이 포함되어 있습니다. 또한 <param> 요소를 활용하면 애플릿이나 빈(Bean)에 매개변수를 전달할 수도 있습니다.
plugin 액션 기본 문법
다음은 plugin 액션의 대표적인 사용 문법입니다.
<jsp:plugin type = "applet" codebase = "dirname" code = "MyApplet.class" width = "60" height = "80">
<jsp:param name = "fontcolor" value = "red" />
<jsp:param name = "background" value = "black" />
<jsp:fallback>
Unable to initialize Java Plugin
</jsp:fallback>
</jsp:plugin>
관심이 있다면 실제 애플릿을 만들어 이 액션을 직접 테스트해 볼 수 있습니다. 특히 눈여겨볼 부분은 <fallback> 요소입니다. 이 요소를 사용하면 컴포넌트 실행이 실패했을 경우 사용자에게 전달할 오류 메시지 문자열을 미리 지정해 둘 수 있어, 사용자 경험 측면에서 유용합니다.
XML 요소를 동적으로 생성하기
<jsp:element>, <jsp:attribute>, <jsp:body> 액션들은 XML 요소를 동적으로 정의하는 데 사용됩니다. 여기서 '동적'이라는 단어가 핵심입니다. 즉, 컴파일 시점에 정적으로 고정된 XML 요소를 만드는 것이 아니라, 요청(request) 시점에 XML 요소를 생성할 수 있다는 의미입니다.
동적 XML 요소 생성 예제
다음은 XML 요소를 동적으로 정의하는 간단한 예제 코드입니다.
<%@page language = "java" contentType = "text/html"%>
<html xmlns = "https://www.w3c.org/1999/xhtml" xmlns:jsp = "https://java.sun.com/JSP/Page">
<head><title>Generate XML Element</title></head>
<body>
<jsp:element name = "xmlElement">
<jsp:attribute name = "xmlElementAttr">
Value for the attribute
</jsp:attribute>
<jsp:body>
Body for XML element
</jsp:body>
</jsp:element>
</body>
</html>
위 코드를 실행하면 런타임에 다음과 같은 HTML 코드가 생성됩니다.
<html xmlns = "https://www.w3c.org/1999/xhtml" xmlns:jsp = "https://java.sun.com/JSP/Page">
<head><title>Generate XML Element</title></head>
<body>
<xmlElement xmlElementAttr = "Value for the attribute">
Body for XML element
</xmlElement>
</body>
</html>
이처럼 jsp:element, jsp:attribute, jsp:body 세 가지 액션을 조합하면 요청 상황에 따라 유연하게 변화하는 XML 구조를 손쉽게 구성할 수 있습니다.