gpt4 book ai didi

java - jsf 中的 jsp .tag-files 的类比是什么,或者如何避免复制和粘贴 jsf/facelets 代码?

转载 作者:行者123 更新时间:2023-12-04 06:59:25 25 4
gpt4 key购买 nike

我认为标题足够清楚,所以我只添加一个典型情况的示例。

第一个代码块:

<div id="mailpanel">
<h:panelGroup id="sendmailpane" styleClass="sendmailpane" layout="block"
rendered="#{userReports.reportRendered}">
<o:inputTextarea promptText="#{msg['mail.listrules']}" promptTextStyle="color: #333"
value="#{userReports.mailingList}" styleClass="maillist"/>
<br/>
<h:commandLink id="sendlink" value="#{msg['mail.sendLink']}"
action="#{userReports.sendMail}"/>
</h:panelGroup>
</div>

第二个(复制的)代码块:
<div id="mailpanel">
<h:panelGroup id="sendmailpane" styleClass="sendmailpane" layout="block"
rendered="#{projectReports.reportRendered}">
<o:inputTextarea promptText="#{msg['mail.listrules']}" promptTextStyle="color: #333"
value="#{projectReports.mailingList}" styleClass="maillist"/>
<br/>
<h:commandLink id="sendlink" value="#{msg['mail.sendLink']}"
action="#{projectReports.sendMail}"/>
</h:panelGroup>
</div>

如您所见,这两个代码块几乎相似,但它们中的每一个都使用不同的支持 bean(但即使 bean 也有一个父类(super class),并且此示例中使用的所有方法实际上都是该父类(super class)的方法)。

最佳答案

<ui:include src="commonFile.jsp">
<ui:param name="reportsBean" value="#{projectReports}" />
</ui:include>

commonFile.jsp你有:
<h:commandLink id="sendlink" value="#{msg['mail.sendLink']}"
action="#{reportsBean.sendMail}" />

唉,你不能指定究竟要包含哪些参数。这就是我使用以下做法的原因:无论何时添加参数,都将注释放在 commonFile.jsp 的顶部。说明名称、类型和必需/可选。例如:
<!-- param: reportsBean, required -->
<!-- param: showLegend, optional, default: false, type: boolean -->

关于java - jsf 中的 jsp .tag-files 的类比是什么,或者如何避免复制和粘贴 jsf/facelets 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2108889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com