0

共有ActionBeanの出力をインポートして、同じコンテンツを多くのページに含めたいという状況を見つけました。

私がやりたいのは、いくつかのパラメーターを受け取り、いくつかの処理を行ってから、ForwardResolutionをJSPに返し、そのActionBeanの出力をのような標準のStripesコンストラクトを使用してレンダリングするActionBeanを用意すること${actionBean.myValueです。

次に、このActionBeanを他のJSPから「呼び出し」たいと思います。これは、最初のActionBeanからの出力HTMLを2番目のJSPの出力に配置する効果があります。

これどうやってするの?

4

2 に答える 2

2

タグを使用すると、目的の結果を得ることができます<jsp:include>

SharedContentBean.java

@UrlBinding("/sharedContent")
public class SharedContentBean implements ActionBean {

    String contentParam;

    @DefaultHandler
    public Resolution view() {
        return new ForwardResolution("/sharedContent.jsp");
    }
}

JSPで

<!-- Import Registration Form here -->
<jsp:include page="/sharedContent">
    <jsp:param value="myValue" name="contentParam"/>
</jsp:include>

web.xml

必ずweb.xmlのタグに追加INCLUDEしてください。<filter-mapping>

<filter-mapping>
    <filter-name>StripesFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <servlet-name>StripesDispatcher</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>
于 2012-08-22T18:55:10.180 に答える
1

同じコンテンツを含めるすべてのActionBeanに、同じBaseActionを拡張させ、そこにゲッター/セッターを配置します。例えば:

BaseAction.class

package com.foo.bar;

public class BaseAction implements ActionBean {

  private ActionBeanContext context;

  public ActionBeanContext getContext() { return context; }
  public void setContext(ActionBeanContext context) { this.context = context; }

  public String getSharedString() {
    return "Hello World!";
  }

}

index.jsp

<html>
  <jsp:useBean id="blah" scope="page" class="com.foo.bar.BaseAction"/>
  <body>
    ${blah.sharedString}
  </body>
</html>
于 2012-08-22T16:47:57.187 に答える