1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.tags;
17
18 import static org.seasar.cubby.tags.TagUtils.addClassName;
19 import static org.seasar.cubby.tags.TagUtils.errors;
20 import static org.seasar.cubby.tags.TagUtils.formValue;
21 import static org.seasar.cubby.tags.TagUtils.outputValues;
22 import static org.seasar.cubby.tags.TagUtils.toAttr;
23
24 import java.io.IOException;
25 import java.util.Map;
26
27 import javax.servlet.jsp.JspContext;
28 import javax.servlet.jsp.JspException;
29 import javax.servlet.jsp.JspWriter;
30
31 import org.seasar.cubby.action.ActionErrors;
32 import org.seasar.cubby.util.CubbyFunctions;
33
34
35
36
37
38
39
40 public class TextareaTag extends DynamicAttributesTagSupport {
41
42 private String name;
43
44 private Object value;
45
46 private Integer index;
47
48 public void setName(final String name) {
49 this.name = name;
50 }
51
52 public void setValue(final Object value) {
53 this.value = value;
54 }
55
56 public void setIndex(final Integer index) {
57 this.index = index;
58 }
59
60
61
62
63 @Override
64 public void doTag() throws JspException, IOException {
65 final JspContext context = this.getJspContext();
66 final JspWriter out = context.getOut();
67 final ActionErrors errors = errors(context);
68 final Map<String, Object> dyn = this.getDynamicAttribute();
69 final Map<String, String[]> outputValues = outputValues(context);
70
71 if (this.index == null) {
72 if (!errors.getFields().get(this.name).isEmpty()) {
73 addClassName(dyn, "fieldError");
74 }
75 } else {
76 if (!errors.getIndexedFields().get(this.name).get(this.index)
77 .isEmpty()) {
78 addClassName(dyn, "fieldError");
79 }
80 }
81 final Object value = formValue(context, outputValues, this.name,
82 this.index, this.value);
83
84 out.write("<textarea name=\"");
85 out.write(this.name);
86 out.write("\" ");
87 out.write(toAttr(dyn));
88 out.write(">");
89 out.write(CubbyFunctions.out(value));
90 out.write("</textarea>\n");
91 }
92 }