str = str.substring (0, str.indexOf(" "));
if (str.endsWith("%>")) str = str.substring (0, str.length()-2); if (str.indexOf (" ")>-1) str = str.substring (0, str.indexOf(" "));
	private void parseHandlers () {		ArrayList partBuffer = new ArrayList ();		char[] source = content.toCharArray ();		int sourceLength = source.length;		int start = 0;		for (int i = 0; i < sourceLength-1; i++) {			if (source[i] == '<' && source[i+1] == '%') {				// found macro start tag				int j = i+2;				// search macro end tag				while (j < sourceLength-1 && (source[j] != '%' || source[j+1] != '>')) {					j++;				}				if (j > i+2) {					String str = (new String (source, i+2, j-i)).trim ();					str = str.substring (0, str.indexOf(" "));					if (str.indexOf(".")>-1 && 						(str.startsWith ("param.")						 || str.startsWith ("response.")						 || str.startsWith("request.")						 || str.startsWith ("session.")						) && !partBuffer.contains(str)) {						partBuffer.add (str);					}					start = j+2;				}				i = j+1;			}		}		String[] strArr = (String[]) partBuffer.toArray (new String [0]);		Arrays.sort (strArr);		for (int i=0; i<strArr.length; i++) {			addParameter (strArr[i]);		}	}