我发现一种情况,我想通过导入共享ActionBean的输出在许多页面上包含相同的内容。

我想做的是有一个ActionBean,它接受一些参数并进行一些处理,然后将ForwardResolution返回到JSP,该JSP使用诸如${actionBean.myValue的标准Stripes构造来呈现该ActionBean的输出。

然后,我想从其他JSP“调用”此ActionBean。这样可以将第一个ActionBean的输出HTML放入第二个JSP的输出中。

我怎样才能做到这一点?

最佳答案

您可以使用<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

确保将INCLUDE添加到web.xml中的<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>

07-27 13:19