/* * $Id$ * $URL$ */ package org.subethamail.web.util; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import lombok.extern.java.Log; /** * Some simple static methods useful as JSP functions * * @author Jeff Schnitzer */ @Log public class TextTool { /** What we want to delete from exception messages */ private static final String EXCEPTION_MSG = "Exception: "; /** * Provides a nicely formatted version of the exception message, * without all the unfriendly java crap. */ public static String exceptionMessage(Throwable t) { String msg = t.getMessage(); int badIndex = msg.lastIndexOf(EXCEPTION_MSG); if (badIndex < 0) return msg; else return msg.substring(badIndex + EXCEPTION_MSG.length()).trim(); } /** * URLEncodes some text. */ public static String urlEncode(String orig) { try { return URLEncoder.encode(orig, "UTF-8"); } catch (UnsupportedEncodingException ex) { // Should be impossible throw new RuntimeException(ex); } } /** * Escapes all xml characters, but also converts newlines to br tags. */ public static String escapeText(String orig) { StringBuffer buf = new StringBuffer(); for (int i=0; i<orig.length(); i++) { char c = orig.charAt(i); switch(c) { case '>': buf.append(">"); break; case '<': buf.append("<"); break; case '\'': buf.append("'"); break; case '"': buf.append("""); break; case '&': buf.append("&"); break; case '\n': buf.append("<br />"); break; default: buf.append(c); } } return buf.toString(); } }