1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.taglib.core;
20
21 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFJspAttribute;
22 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFJspTag;
23 import org.apache.myfaces.shared.renderkit.JSFAttr;
24 import org.apache.myfaces.shared.taglib.UIComponentELTagBase;
25
26 import javax.el.ValueExpression;
27 import javax.faces.component.UIComponent;
28 import javax.faces.component.UIOutput;
29 import javax.servlet.jsp.JspException;
30 import javax.servlet.jsp.tagext.BodyContent;
31
32
33
34
35
36 @JSFJspTag(name = "f:verbatim", bodyContent = "JSP")
37 public class VerbatimTag extends UIComponentELTagBase
38 {
39
40
41 @Override
42 public String getComponentType()
43 {
44 return "javax.faces.Output";
45 }
46
47 @Override
48 public String getRendererType()
49 {
50 return "javax.faces.Text";
51 }
52
53
54 private ValueExpression _escape;
55 private ValueExpression _rendered;
56
57 @Override
58 protected void setProperties(UIComponent component)
59 {
60 super.setProperties(component);
61
62 setBooleanProperty(component, JSFAttr.ESCAPE_ATTR, _escape, Boolean.FALSE);
63 setBooleanProperty(component, JSFAttr.RENDERED, _rendered, Boolean.TRUE);
64
65
66 component.setTransient(true);
67 }
68
69
70
71
72 @JSFJspAttribute(className="javax.el.ValueExpression",
73 deferredValueType="java.lang.Boolean")
74 public void setEscape(ValueExpression escape)
75 {
76 _escape = escape;
77 }
78
79
80
81
82
83 @Override
84 @JSFJspAttribute(className="javax.el.ValueExpression",
85 deferredValueType="java.lang.Boolean")
86 public void setRendered(ValueExpression rendered)
87 {
88 _rendered = rendered;
89 }
90
91 @Override
92 public int doAfterBody() throws JspException
93 {
94 BodyContent bodyContent = getBodyContent();
95 if (bodyContent != null)
96 {
97 UIOutput component = (UIOutput)getComponentInstance();
98 component.setValue(bodyContent.getString());
99 bodyContent.clearBody();
100 }
101 return super.getDoAfterBodyValue();
102 }
103 }