【发布时间】:2011-03-04 19:37:17
【问题描述】:
我目前正在审核项目中的用户操作,并且遇到以下问题。
有一个名为审计日志的功能,它列出了用户在我的系统上执行的完整的审计操作集。每当某个用户列出审核日志时,也需要审核此操作。
生成审计日志的 JSF 页面如下:
<ui:composition ...>
<ui:define name="content">
<h:form id="audit_List">
<h:panelGrid columns="1">
<p:breadCrumb>
<p:menuitem value="#{i18n['xxx']}" url="index.xhtml" />
<p:menuitem value="#{i18n['yyy']}"/>
</p:breadCrumb>
<p:panel header="#{i18n['zzz']}">
<p:dataTable var="auditEntry"
value="#{auditList.allAuditEntries}"
paginator="true"
rows="10"
paginatorPosition="top"
dynamic="false">
<p:column sortBy="#{i18n[auditEntry.category]}"
filterBy="#{i18n[auditEntry.category]}">
A column here
</p:column>
<p:column sortBy="#{auditEntryDescriptionI18N[auditEntry]}"
filterBy="#{auditEntryDescriptionI18N[auditEntry]}">
A column here
</p:column>
<p:column sortBy="#{auditEntry.username}"
filterBy="#{auditEntry.username}">
A column here
</p:column>
<p:column id="problematicColumn"
sortBy="#{auditEntry.occurredOn}"
filterBy="#{auditEntry.occurredOn}">
<f:facet name="header">
<h:outputText value="#{i18n['aaa']}"/>
</f:facet>
<h:outputText value="#{auditEntry.occurredOn}">
<f:convertDateTime type="date"
___I suspect pattern is giving the problem..___
pattern="{auditList.listDateFormat.stringValue}"
timeZone="#{sessionBean.serverTimeZone}"/>
</h:outputText>
</p:column>
</p:dataTable>
</p:panel>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
我目前对特定代码 sn-p 执行审核操作:
<p:dataTable var="auditEntry"
value="#{auditList.allAuditEntries}"
paginator="true"
rows="10"
paginatorPosition="top"
dynamic="false">
我的后盾:
public List<AuditEntry> getAllAuditEntries()
{
auditFacade.createAuditEntry(function that creates an audit entry);
return allAuditEntries;
}
对 backing bean 的命名操作执行审计的问题如下:
需要一种方法来注册一次查询审核日志,而不是像图像上显示的那样。有任何想法吗?使用 JSF 或相关标签的任何方式都可以保证上述内容?
TL;DR 在 JSF 页面上只有一个 PrimeFaces 数据表,如何审核此类页面的打开以使审核注册在单行上,而不是如图所示。
Pd:重新编辑所有按时差过滤的重复审计条目是不可行的
【问题讨论】:
标签: java jsf datatable primefaces audit