如何只发送部分信息,而不发送整个dataTable?

时间:2019-04-15 09:01:36

标签: java jsf

我正在编写一个代码,该代码从DB中获取一些数据,并将其呈现给用户,从而可以更改记录。少量数据没有问题,但涉及大量数据时,服务器错误:参数计数超出允许的最大值512。开发人员工具中的“网络”部分向我展示了我的代码始终通过POST请求发送所有记录,因此我认为我得到这个错误。我想知道如何解决它?谢谢

我认为代码将所有数据发送到服务器,因为它处于自由编辑模式(我的意思是Disabled =“ false”)。我试图禁用它-无法正常工作。

<rich:dataTable styleClass="theme5" value="#{documentRules.getRules()}" var="d" rowKeyVar="r">
    <rich:column width="20" style="text-align:center;" id="code_#{counter.next()}">
        <f:facet name="header">#{messages['service.rules.document.code']}</f:facet>
        <!--<h:panelGroup id="code2_#{d['id']}">-->
            <h:inputText id="code_#{d['id']}" value="#{d['code']}" disabled="true" style="text-align: center; width: 85px"/>
        <!--</h:panelGroup>-->

    </rich:column>
    <rich:column width="25" style="text-align:center;">
        <f:facet name="header">#{messages['service.rules.type']}</f:facet>
        <h:selectOneMenu id="docType_#{d['id']}" value="#{d['docType']}" required="true" style="max-width: 460px;" styleClass="input" disabled="true">
            <f:selectItem itemLabel="#{messages['ORIGINAL']}" itemValue="ORIGINAL"/>
            <f:selectItem itemLabel="#{messages['COPY']}" itemValue="COPY"/>
            <f:selectItem itemLabel="#{messages['NOTARIZED_COPY']}" itemValue="NOTARIZED_COPY"/>
            <f:selectItem itemLabel="#{messages['DUBLICATE']}" itemValue="DUBLICATE"/>
            <f:selectItem itemLabel="#{messages['ARCHIEVE']}" itemValue="ARCHIEVE"/>
            <f:selectItem itemLabel="#{messages['ELECTRONIC']}" itemValue="ELECTRONIC"/>
        </h:selectOneMenu>
    </rich:column>
    <rich:column width="15" style="text-align:center;">
        <f:facet name="header">#{messages['service.rules.quantity']}</f:facet>
        <div style="width: 15px;">
        <h:inputText id="quantity_#{d['id']}" value="#{d['quantity']}" disabled="true" style="text-align: center; width: 40px" />
        </div>
    </rich:column>
    <rich:column style="text-align:center;">
        <f:facet name="header">#{messages['service.rules.isReturned']}</f:facet>
        <h:selectOneMenu id="returned_#{d['id']}" value="#{d['returned']}" required="true" style="max-width: 460px;" styleClass="input" disabled="true">
            <f:selectItem itemLabel="#{messages['service.rules.returned.yes']}" itemValue="true"/>
            <f:selectItem itemLabel="#{messages['service.rules.returned.not']}" itemValue="false"/>
        </h:selectOneMenu>
    </rich:column>
    <rich:column style="text-align:center;">
        <f:facet name="header">#{messages['service.rules.group']}</f:facet>
        <h:inputText id="group_#{d['id']}" value="#{d['group']}" disabled="true" style="text-align: center"/>
    </rich:column>
    <rich:column style="text-align:center;">
        <f:facet name="header">#{messages['service.rules.unisodParams']}</f:facet>
        <h:inputText id="unisodParams_#{d['id']}" value="#{d['unisodparams']}" disabled="true" style="text-align: center" />
    </rich:column>
    <rich:column style="text-align:center;">
        <f:facet name="header">#{messages['Источник']}</f:facet>
        <h:inputText id="source_#{d['id']}" value="#{d['source']}" disabled="true" style="text-align: center" />
    </rich:column>
    <rich:column width="21">
        <div style="width: 21px;">
            <a:commandLink id="saveRule" type="submit" action="#{documentRules.saveDocument(d)}" process="code,docType,quantity,returned,group,unisodParams,source" reRender="editConditionPanel,serviceDocumentsPanel" oncomplete="showMessages()" ajaxSingle="true" ignoreDupResponses="true" eventsQueue="globalQueue" requestDelay="200" status="globalStatus">
                <span class="icon icon-point"/>
            </a:commandLink>
        </div>
    </rich:column>
    <rich:column width="21">
        <div style="width: 21px;">
            <a:commandLink action="#{documentRules.editDocument(d)}" reRender="editConditionPanel,serviceDocumentsPanel" oncomplete="showMessages()" ajaxSingle="true" ignoreDupResponses="true" eventsQueue="globalQueue" requestDelay="200" status="globalStatus">
                <span class="icon icon-edit-contact"/>
            </a:commandLink>
        </div>
    </rich:column>
    <rich:column width="21">
        <div style="width: 21px;">
            <a:commandLink action="#{documentRules.deleteDocument(d)}" reRender="editConditionPanel,serviceDocumentsPanel" oncomplete="showMessages()" ajaxSingle="true" ignoreDupResponses="true" eventsQueue="globalQueue" requestDelay="200" status="globalStatus">
                <span class="icon icon-delete-contact"/>
            </a:commandLink>
        </div>
    </rich:column>
</rich:dataTable>

getRules其方法是根据某些条件从数据库中获取数据。

我希望服务器不要一次发送所有数据。只有那些已被修改的。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您应该使用分页。