我使用Primefaces Datatable组件。这个数据表组件在浏览器上动态创建一个隐藏字段。
<input type="hidden" id="formId:activitydescription_selection" name="formId:activitydescription_selection" autocomplete="off" value="" />
Primefaces数据表代码如下
<p:dataTable id="activitydescription" var="type"
value="#{activityBean.activityList}" rows="#{activityBean.rowNo}" rowKey="#{type.activitySchemeId}"
selection="#{activityBean.activityDTO}"
emptyMessage="No value found with given criteria"
paginatorPosition="bottom" sortMode="single" paginator="#{empty activityBean.activityList ? 'false':'true' }"
dynamic="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
rowIndexVar="rowIndex">
现在,当页面提交时,HIDV认为在浏览器上动态创建的隐藏字段是黑客攻击的情况,因此重定向到错误页面,控制台日志为
org.hdiv.logs.Logger log INVALID_PARAMETER_NAME;/hseadmin/pages/secured/admin/Layout.xhtml;**formId:activitydescription_selection**;;0:0:0:0:0:0:0:1;0:0:0:0:0:0:0:1;anonymous
在我的HDIV -config.xml文件中,我已经修改了文件,以便HDIV忽略该字段出现的验证
<hdiv:paramsWithoutValidation>
<hdiv:mapping url=".*" parameters="formId:activitydescription_selection"/>
</hdiv:paramsWithoutValidation>
但是没有运气,仍然是相同的控制台错误和HDIV重定向到错误页面。有人可以帮助我如何避免这些验证对HDIV?
try.
<property name="userStartParameters">
<list>
<value>hidden1Name</value>
<value>hidden2Name</value>
</list>
</property>
HDIV不支持Primefaces组件,只支持标准的JSF组件,如<h:dataTable>
。