1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.seasar.cubby.tags;
18
19 import static org.seasar.cubby.internal.util.LogMessages.format;
20
21 import java.io.IOException;
22 import java.io.StringWriter;
23
24 import javax.servlet.jsp.JspException;
25 import javax.servlet.jsp.tagext.SimpleTagSupport;
26
27
28
29
30
31
32 public class ParamTag extends SimpleTagSupport {
33
34
35 private String name;
36
37
38 private String value;
39
40
41
42
43
44
45
46 public void setName(final String name) {
47 this.name = name;
48 }
49
50
51
52
53
54
55
56 public void setValue(final String value) {
57 this.value = value;
58 }
59
60
61
62
63 @Override
64 public void doTag() throws JspException, IOException {
65 final ParamParent parent = (ParamParent) findAncestorWithClass(this,
66 ParamParent.class);
67 if (parent == null) {
68 throw new JspException(format("ECUB1004"));
69 }
70 final String value;
71 if (this.value == null) {
72 final StringWriter writer = new StringWriter();
73 getJspBody().invoke(writer);
74 value = writer.toString().trim();
75 } else {
76 value = this.value;
77 }
78 parent.addParameter(name, value);
79 }
80
81 }