Shizzl_chrizzl
Erfahrenes Mitglied
H ich hab n kleines Problem
also ich hab das Formular
der Parameter topic wird an das Servlet übergeben
Nun wie man sieht werden die WhiteSpaces über die Methode cleanLink entfernt und anschließend auf eine Seite weitergeleitet.
Das Problem ist nur das der clean Link , Wörter mit Buchstaben wie Ä, Ö usw. kaputt macht, sprich wenn ich ihn einsetze und es kommen Wörter vor wie "Änderungen" geht es nicht. Wenn ich ihn nicht einsetze funktioniert es zwar aber Wörter wie
"Letzte Änderungen" , also Wörter mit einem Whitespace drinnen werden nicht richtig erkannt. WEIS JEMAND RAT
Anschließend noch die cleanLink Methode
also ich hab das Formular
HTML:
<form method='post' name='jumpbox' action='JumpBox' accept-charset='UTF-8'>
<input type='text' name='topic' size='30'>
<input type='submit' value='ok'>
</form>
der Parameter topic wird an das Servlet übergeben
Code:
String inputParameter = request.getParameter("topic");
String cleanedInputParameter =TranslatorReader.cleanLink(inputParameter.trim());
response.setContentType("text/html");
request.getRequestDispatcher("Wiki.jsp?page="+inputParameter).forward(request, response);
Nun wie man sieht werden die WhiteSpaces über die Methode cleanLink entfernt und anschließend auf eine Seite weitergeleitet.
Das Problem ist nur das der clean Link , Wörter mit Buchstaben wie Ä, Ö usw. kaputt macht, sprich wenn ich ihn einsetze und es kommen Wörter vor wie "Änderungen" geht es nicht. Wenn ich ihn nicht einsetze funktioniert es zwar aber Wörter wie
"Letzte Änderungen" , also Wörter mit einem Whitespace drinnen werden nicht richtig erkannt. WEIS JEMAND RAT
Anschließend noch die cleanLink Methode
Code:
public static String cleanLink( String link )
{
StringBuffer clean = new StringBuffer();
if( link == null ) return null;
StringTokenizer st = new StringTokenizer( link, " -" );
while( st.hasMoreTokens() )
{
StringBuffer component = new StringBuffer(st.nextToken());
component.setCharAt(0, Character.toUpperCase( component.charAt(0) ) );
clean.append( component.toString() );
}
for( int i = 0; i < clean.length(); i++ )
{
char ch = clean.charAt(i);
if( !(Character.isLetterOrDigit(ch) ||
PUNCTUATION_CHARS_ALLOWED.indexOf(ch) != -1 ))
{
clean.deleteCharAt(i);
--i; // We just shortened this buffer.
}
}
return clean.toString();
}