01: /*
02: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
03: *
04: * This file is part of Resin(R) Open Source
05: *
06: * Each copy or derived work must preserve the copyright notice and this
07: * notice unmodified.
08: *
09: * Resin Open Source is free software; you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License version 2
11: * as published by the Free Software Foundation.
12: *
13: * Resin Open Source is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
16: * of NON-INFRINGEMENT. See the GNU General Public License for more
17: * details.
18: *
19: * You should have received a copy of the GNU General Public License
20: * along with Resin Open Source; if not, write to the
21: *
22: * Free Software Foundation, Inc.
23: * 59 Temple Place, Suite 330
24: * Boston, MA 02111-1307 USA
25: *
26: * @author Scott Ferguson
27: */
28:
29: package com.caucho.jsf.html;
30:
31: import java.io.*;
32: import java.util.*;
33:
34: import javax.faces.*;
35: import javax.faces.component.*;
36: import javax.faces.component.html.*;
37: import javax.faces.context.*;
38: import javax.faces.render.*;
39:
40: /**
41: * The HTML text renderer
42: */
43: abstract class HtmlRenderer extends BaseRenderer {
44: protected static void escapeText(ResponseWriter out, String text,
45: String prop) throws IOException {
46: int length = text.length();
47:
48: for (int i = 0; i < length; i++) {
49: char ch = text.charAt(i);
50:
51: switch (ch) {
52: case '<':
53: out.writeText("<", prop);
54: break;
55: case '>':
56: out.writeText(">", prop);
57: break;
58: case '&':
59: out.writeText("&", prop);
60: break;
61: default:
62: out.write(ch);
63: break;
64: }
65: }
66: }
67: }
|