1 package org.gnomekr.potron.web.tag;
2
3 import static org.gnomekr.potron.util.PotronConstants.RESOURCE_NAME;
4
5 import java.io.IOException;
6 import java.util.MissingResourceException;
7 import java.util.ResourceBundle;
8
9 import javax.servlet.jsp.JspException;
10 import javax.servlet.jsp.JspWriter;
11 import javax.servlet.jsp.tagext.TagSupport;
12
13 import org.apache.commons.logging.Log;
14 import org.apache.commons.logging.LogFactory;
15
16 /***
17 * MessageBoxTag.java
18 * @author Xavier Cho
19 * @version $Revision 1.1 $ $Date: 2005/07/07 15:20:15 $
20 * @jsp:tag
21 * name="msgbox"
22 * body-content="JSP"
23 */
24 public class MessageBoxTag extends TagSupport {
25
26 private static final long serialVersionUID = 3258407314078839091L;
27
28 public static final String PARAM_NAME = "msg";
29
30 private String parameter;
31
32 /***
33 * @jsp:attribute
34 * required="false"
35 * rtexprvalue="true"
36 */
37 public String getParameter() {
38 return parameter;
39 }
40
41 /***
42 * @param parameter
43 */
44 public void setParameter(String parameter) {
45 this.parameter = parameter;
46 }
47
48 /***
49 * @see javax.servlet.jsp.tagext.Tag#doStartTag()
50 */
51 public int doStartTag() throws JspException {
52 if (parameter == null) {
53 parameter = PARAM_NAME;
54 }
55
56 String key = pageContext.getRequest().getParameter(parameter);
57 String message = null;
58
59 if (key != null) {
60 try {
61 ResourceBundle resources = ResourceBundle
62 .getBundle(RESOURCE_NAME);
63
64 message = resources.getString(key);
65 } catch (MissingResourceException e) {
66 Log log = LogFactory.getLog(getClass());
67
68 if (log.isWarnEnabled()) {
69 String msg = "Unable to find the specified message : "
70 + key;
71 log.warn(msg, e);
72 }
73 }
74 }
75
76 if (message != null) {
77 try {
78 JspWriter out = pageContext.getOut();
79
80 out.print("<script type=\"text/javascript\" ");
81 out.println("language=\"javascript\">");
82 out.print(" alert(\"");
83 out.print(message);
84 out.println("\");");
85 out.println("</script>");
86 } catch (IOException e) {
87 String msg = "Unable to write tag content : " + e.getMessage();
88
89 Log log = LogFactory.getLog(getClass());
90 if (log.isErrorEnabled()) {
91 log.error(msg, e);
92 }
93
94 throw new JspException(msg);
95 } finally {
96 release();
97 }
98 } else {
99 release();
100 }
101
102 return SKIP_BODY;
103 }
104
105 /***
106 * @see javax.servlet.jsp.tagext.Tag#release()
107 */
108 public void release() {
109 this.parameter = null;
110 }
111 }