Angezeigte Url verändern

MZ3291

Aktives Mitglied
Hallo alle zusammen,

mein Problem sollte eigentlich recht einfach zu lösen sein, leider komme ich nicht mehr weiter, weder durch Google noch durch ausprobieren.

Meine ActionBeans (ich verwende Stripes) kümmern sich vorbildlich, um das ANzeigen meiner jsp Seiten und weiteren Schnick schnack.
Dabei endet die angezteigte Url mit .action,
Beispiel: http://localhost/de.company.project/packages/Login.action

Was muss ich tun wenn ich diese Url verändern möchte und sie beispielsweise auf .htm enden soll ?

Ich würde vermuten, dass ich etwas in meiner WEB.xml ändern muss, weiß aber leider nicht was..

Bin dankbar für jede Hilfe und jede Idee :)

Grüße
 
S

Sym

Gast
URLRewrite ist doch serverabhängig, oder?

In der Regel verwendet man vor einer Anwendung einen Apache, damit kannst Du das natürlich lösen.
 
N

nillehammer

Gast
Du willst, dass der Aufruf Deiner ActionBeans nicht mit ".action" sondern mit ".html" endet und es trotzdem funktioniert? Das machst Du in Deiner web.xml mit dem Element "servlet-mapping" Ganz grob so:
[XML]
<servlet-mapping>
<servlet-name>
NameDeinesServlets (siehe servlet-Elemente)
</servlet-name>
<url-pattern>
*.html
</url-pattern>
</servlet-mapping>
[/XML]
Könnte je nach Framework auch sein, dass es ein Filter und kein Servlet ist. Dann wäre es filter-mapping. Die Art und Weise des Mappings ist gleich. Du sollstest in Deiner web.xml sehen können, wie Requests auf die Klassen des Frameworks geleitet werden.
 
Zuletzt bearbeitet von einem Moderator:

JimPanse

Bekanntes Mitglied
Du willst, dass der Aufruf Deiner ActionBeans nicht mit ".action" sondern mit ".html" endet und es trotzdem funktioniert? Das machst Du in Deiner web.xml mit dem Element "servlet-mapping" Ganz grob so:
[XML]
<servlet-mapping>
<servlet-name>
NameDeinesServlets (siehe servlet-Elemente)
</servlet-name>
<url-pattern>
*.html
</url-pattern>
</servlet-mapping>
[/XML]
Könnte je nach Framework auch sein, dass es ein Filter und kein Servlet ist. Dann wäre es filter-mapping. Die Art und Weise des Mappings ist gleich. Du sollstest in Deiner web.xml sehen können, wie Requests auf die Klassen des Frameworks geleitet werden.

Das sollte nicht funktionieren weil der Stripes Dispatcher über das Pattern *.action die entsprechend ActionBean antriggert. (Namenskonvention)
 

MZ3291

Aktives Mitglied
Auf diese Weise hatte ich es auch selber probiert .. einfach das url-pattern von *.action zu *.htm ändern.. daraufhin kam der Fehler, dass die ActionBean nicht mehr registriert ist..
Oder habe ich vllt vergessen das auch woanders zu ändern?

EDIT: Da hab ich mich vertan.. es kommt ein einfacher 404 dass die Resource .../Login.action nicht available ist.
 
Zuletzt bearbeitet:

JimPanse

Bekanntes Mitglied
Wie ich bereits geschrieben habe kannst du das pattern nicht einfach ändern!

Stripes mappt die Klassen drauf -> Namenskonvention:

MyClassActionBean <-- --> myclass.action
 
N

nillehammer

Gast
Oder habe ich vllt vergessen das auch woanders zu ändern?

EDIT: Da hab ich mich vertan.. es kommt ein einfacher 404 dass die Resource .../Login.action nicht available ist.
Prinzipiell kannst du das Mapping in der web.xml schon ändern. Wenn Du *.html als url-pattern nimmst, muss die URL natürlich so aussehen
Code:
/Login.html
, damit der Request auf die Login-Action geleitet wird. Problem ist jetzt, wenn intern auf URLs geforwardet wird oder Redirects an den Client gesendet werden. Wenn hier weiterhin das Namenschema ".action" benutzt wird, klappt das natürlich nicht mehr. Ist also vielleicht keint gangbarer Weg, weil zu aufwendig.

Dann bleibt Dir tatsächlich nichts anderes übrig, als durch einen externen Mechanismus (vorgeschalteter Apache oder Servlet-Filter) die Requests, die mit .html ankommen auf .action umzuschreiben und an Dein Framework zu senden.
 

MZ3291

Aktives Mitglied
Ich glaube ich habe jetzt die Lösung ..

Der Trick ist beim StripesFilter für ActionResolver.Class als Parameter eine (unsere) firmeninterne lösung einzusetzen und dann muss/kann beim DispatcherServlet im Servlet-Mapping *.htm als url-pattern gesetzt werden.

So gesehen hast du vermutlich Recht Nillehammer, mit der Ergänzung dass der aufwand schon betrieben wurde ..

Vielen Dank trotzdem für die Tipps, die mich etwas schlauer gemacht haben !
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
NoXiD JSF Pfadangabe verändern Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben