我正在使用 DisplayTag 库构建一个表格。我需要在许多页面的多个表中共享一列,因此我尝试使用<display:column>
在<display:table>
内插入<tiles:insertAttribute>
:
<display:table ....>
<tiles:insertAttribute name="attivoTh"/>
</display:table>
<definition name="attivoTh" template="/WEB-INF/template/default/th/attivoTh.jsp" />
这是我得到的错误:
nov 21, 2016 2:08:08 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ds] in context with path [/Jeans2016] threw
exception [Request processing failed; nested exception
is org.apache.tiles.impl.CannotRenderException: ServletException including
path '/WEB-INF/template/default/template1.jsp'.] with root cause
Exception: [.ColumnTag] Tag "column" should ne nested in "table"
有人理解为什么吗?
答案 0 :(得分:0)
您的显示表使用了一个集合。 在那个集合中你放置了对象。 如果许多不同的表使用相同的值/对象,则在集合服务器端提供该对象。 (您可以使用包装器)
对于你提供的对象Foo然后只是
;WITH CTE AS (SELECT
DENSE_RANK() OVER (Order by
col1,
col2,
col3) SetID,
COUNT(*) OVER (partition by
col1,
col2,
col3) DupsInSet,
row_number() OVER (PARTITION BY
col1,
col2,
col3
ORDER BY
col4) RowInSet,
*
FROM mytable)
SELECT x.string1, a.*
FROM CTE a
CROSS APPLY(
SELECT col4
FROM CTE b
WHERE b.SetID = a.SetID
FOR XML PATH ('')
) x (string1)
WHERE a.DupsInSet > 1
或者,显示这些表的所有servlet都可以从基础servlet扩展,该servlet将该对象/值放入请求中并添加包含该数据的列:
<display:table ....>
<display:column property="foo.value" .../>
</display:table>