Spring: DispatcherServlet leitet nicht korrekt weiter

NetPerformance

Erfahrenes Mitglied
Hallo Zusammen,

Ich habe ein Probleme mit der Weiterleitung des DispatcherServlets.

input.jsp
HTML:
<html>
	<head></head>
	<body>	

		<form action="/process.html" method="POST">
			<input type="text" name="username" />
			<input type="submit" value="send" />
		</form>
		
	</body>
</html>


birthdayreminder-servlet.xml

Code:
<bean name="/process.html" class="de.aaron.birthdayreminder.ProcessController" >	
	<property name="formView" value="input" />
	<property name="successView" value="output" />
</bean>


Beim versenden des Formulars werde ich auf die folgende Seite weitergeleitet:

Code:
http://localhost:8080/process.html

das Projekt ist jedoch unter der folgenden URL zu erreichen:

Code:
http://localhost:8080/birthdayreminder/process.html

Eine korrekte Weiterleitung erreiche ich nur, indem ich das action folgendermaßen verändere:

Code:
<form action="<%= request.getContextPath() %>/process.html" method="POST">

Weshalb funktioniert die Weiterleitung ohne <%= request.getContextPath() %> nicht ?

Das DispatcherServlet sollte richtig konfiguriert sein.
Hier ist das DispatcherServlet zu finden.

Gruß
Aaron
 
Weil du eine absolute URL ohne Hostnamen angegeben hast. Deswegen landet der Request dort. Du hast mehrere Möglichkeiten:

a) als Formaction einfach "process.html" (ohne Slash) angeben
b) wenn process.html bereits auch das Formular anzeigt (klassischer SimpleFormController) brauchst du gar keine action explizit definieren
c) du benutzt das c:url tag aus JSTL. Das korrigiert absolute URLs zu relativen zum ServletContext

Gruß
Ollie
 

Neue Beiträge

Zurück