Stripes Framework を使用してファイルのサフィックス/拡張子 (.jsp および .action) を削除するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2270234

  •  20-09-2019
  •  | 
  •  

質問

Web アプリできれいな URL を使用したいと考えています。

次のURLを希望します。

http://mydomain.com/myapp/calculator

..次のように解決します。

com.mydomain.myapp.action.CalculatorActionBean

NameBasedActionResolver を次のように上書きしてみました。

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;
    }
}

そしてこれを追加すると、 web.xml:

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

これにより、次のことが可能になります。

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

しかし:

  1. 迷い「」。まだきれいでもきれいでもありません。
  2. URL ではクラス名が大文字のままです。
  3. それはまだ私に残っています *.jsp..?両方とも取り除くことは可能ですか .action そして .jsp?
役に立ちましたか?

解決

@URLBinding アノテーションを探していると思います。見る @URLBinding あなたのBean上で。

@UrlBinding("/計算機")

他のヒント

私は同じことをしようとしていて、同じ質問がありましたが、URL の末尾にスラッシュを使用したかったのです。 http://mydomain.com/myapp/calculator/

答えは、@UrlBinding と DynamicMappingFilter を使用することです。

この例を次のように変更しました。

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

次に、DMF を 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>

現在、クリーンな URL は期待どおりに機能し、フォームを操作した後に *.action URL にリダイレクトされることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top