Frage

Ich bin auf der Suche ziemlich verwenden / clean URL ist in meinem Web-App.

Ich mag die folgende URL:

http://mydomain.com/myapp/calculator

.. zu lösen zu:

com.mydomain.myapp.action.CalculatorActionBean

Ich habe versucht, das Überschreiben des NameBasedActionResolver mit:

public class CustomActionResolver extends NameBasedActionResolver {
    public static final String DEFAULT_BINDING_SUFFIX = ".";

    @Override
    protected String getBindingSuffix() {
        return DEFAULT_BINDING_SUFFIX;
    }

    @Override
    protected List<String> getActionBeanSuffixes() {
        List<String> suffixes = new ArrayList<String>(super.getActionBeanSuffixes());
        suffixes.add(DEFAULT_BINDING_SUFFIX);
        return suffixes;
    }
}

Und das Hinzufügen dieser zu web.xml:

<servlet-mapping>
    <servlet-name>StripesDispatcher</servlet-name>
    <url-pattern>*.</url-pattern>
</servlet-mapping>

Was mich bekommt an:

http://mydomain.com/myapp/Calculator.

Aber:

  1. A verirren "" noch weder hübsch noch sauber ist.
  2. Der Klassenname noch in der URL aktiviert wird ..?
  3. , die noch Blätter mich mit *.jsp ..? Ist es auch möglich, sowohl .action und .jsp loswerden?
War es hilfreich?

Lösung

Ich glaube, Sie für die @URLBinding Anmerkung suchen. Schauen Sie sich @URLBinding auf Bean.

@UrlBinding ( "/ Rechner")

Andere Tipps

Ich habe versucht, das gleiche zu tun, und hatte die gleiche Frage, obwohl ich meine URL wollte den Slash http://mydomain.com/myapp/calculator/ verwenden

Die Antwort ist @UrlBinding & die DynamicMappingFilter

zu verwenden,

ich das Beispiel geändert zu haben:

@UrlBinding("/calculator/")
public class CalculatorActionBean implements ActionBean {
  .
  .
  .
return new ForwardResolution("/WEB-INF/view/calculator.jsp");

Dann habe ich das DMF zu web.xml:

<filter>
    <display-name>Stripes Dynamic Mapping Filter</display-name>
    <filter-name>DynamicMappingFilter</filter-name>
    <filter-class>net.sourceforge.stripes.controller.DynamicMappingFilter</filter-class>
    <init-param>
        <param-name>ActionResolver.Packages</param-name>
        <param-value>com.example.stripes</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>DynamicMappingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>

Nun ist die saubere URL wie erwartet funktioniert, und ich bin nie auf eine umgeleitet * .Action URL, nachdem sie mit der Form zusammenwirkt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top