繁体   English   中英

将呈现的JSP片段作为参数传递给另一个JSP

[英]Passing a rendered JSP fragment as an argument to another JSP

我有一个JSP片段,看起来像这样:

<div>
    <div>
        <!-- 1 -->
        <h1>Hello Everyone!</h1> 
    </div>
    <div>
        <!-- 2 -->
        <jsp:include page="./anotherJspFragment.jsp">
            <jsp:param name="someName" value="someValue"/>
        </jsp:include>
    </div>
</div>

该片段在JSP页面中重复了几次-已被复制并粘贴,只有标记为“ 1”和“ 2”的部分在每次出现之间都发生了变化。

该片段的每个实例都include一个具有不同参数的不同JSP页面。

一些看起来像这样:

        <jsp:include page="./firstJspFragment.jsp" />

而其他人看起来像这样:

        <jsp:include page="./secondJspFragment.jsp">
            <jsp:param name="someName1" value="someValue1"/>
            <jsp:param name="someName2" value="someValue2"/>
        </jsp:include>

我想创建一个包含所有样板标记的可重用JSP片段,我可以使用它来减少重复。 此JSP片段将需要将呈现的JSP片段作为参数( firstJspFragment.jspsecondJspFragment.jsp等)。 这可能吗? 还是我可以使用其他方法?

好的,所以看起来这样做的方法是在WEB-INF/tags创建一个名为myTag.tag WEB-INF/tags ,其中包含样板标记

http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html

然后,您可以将渲染的页面作为正文传递进去,例如

<test:myTag title="Hello Everyone">
    <jsp:include page="./firstJspFragment.jsp" />
</test:myTag>   

然后,将在标记中<jsp:doBody />出现的位置渲染此JSP片段,例如

<%@ attribute name="title" required="true" %>

<div>
    <div>
        <!-- 1 -->
        <h1>${title}</h1> 
    </div>
    <div>
        <!-- 2 -->
        <jsp:doBody />
    </div>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM