我是一个新的瓷砖用户,到目前为止我很喜欢它。但我现在面临一个问题,我不确定瓷砖是否是我实现目标的正确工具。
我想做的是创建一个通用注册表单,在多个站点之间共享。此注册表在每个站点上会略有不同。很明显,他们可以使用相同的 jsp 文件和 java 代码。我的目标是拥有一个 .properties 文件,我可以在其中配置哪些输入表单片段应该包含在表单中,哪些不应该包含在表单中(对于每个站点)。
有没有办法动态插入属性?
我创建了一个视图准备器类。这样我可以添加/覆盖现有属性。
public class TestViewPreparer extends ViewPreparerSupport {
public void execute(TilesRequestContext tilesContext, AttributeContext attributeContext) throws PreparerException {
Attribute attribute = new Attribute("/WEB-INF/views/search-panel/holiday-type.jsp");
attributeContext.putAttribute("rfFragment", attribute);
}
}
但这一次只添加/覆盖一个属性。除了在模板文件中,我必须为它们中的每一个添加以下行。
<tiles:insertAttribute name="rfFragment1" />
<tiles:insertAttribute name="rfFragment2" />
//... etc
我正在寻找的更像是添加一个Attribute
s 列表并将它们包含在带有循环的模板行中。不知何故像这样:
<tiles:useAttribute id="fragments" name="rfFragments" classname="java.util.List" />
<c:forEach var="fragment" items="${fragments}">
<tiles:insertAttribute value="${fragment}" flush="true" /></c:forEach>
我的问题是AttributeContext
只能采用一个属性而不能采用属性列表。还是我错过了什么?
鉴于细节,我希望我能充分描述我的问题。