Liferay 7.1: автозаполям не удается получить fieldIndexes - PullRequest
0 голосов
/ 13 марта 2019

Я начинаю использовать композицию liferay-auto-fields.

Итак, вот мой jsp с сценарием aui: script ->

   <aui:form action="<%=saveMotiveURL%>" name="fm" method="post" enctype="multipart/form-data" onSubmit="setZones()" >
            <aui:fieldset>
                <aui:field-wrapper>
                     <div id="emailAdress-fields">
                           <label class="control-label"><liferay-ui:message key="motiveConfigEdit.col5"></liferay-ui:message> </label>
                           <div class="lfr-form-row lfr-form-row-inline">
                               <div class="row-fields">
                                   <aui:input type="text" name="emailAdress1" fieldParam='emailAdress1' id='emailAdress1' label="" value=""/>
                                   <aui:input type="hidden" name="motiveEmailId1" fieldParam='motiveEmailId1' id='motiveEmailId1' value=""/>
                               </div>
                          </div>
                      </div>
                      <aui:button type="submit" name="saveButton" value="button.create" label=""/>
                </aui:field-wrapper>
            </aui:fieldset>
        </aui:form>
    <aui:script>

        AUI().use('liferay-auto-fields',function(A) {
            new Liferay.AutoFields(
                {
                    contentBox: '#emailAdress-fields',
                    fieldIndexes: '<portlet:namespace />rowIndexes'
                }
            ).render();
        });
</aui:script>

Затем я хочуполучить "rowIndexes" в функции processaction, поэтому я делаю:

String rowIndexes = actionRequest.getParameter("rowIndexes");

И это всегда дает мне ПУСТО.Я также замечаю, что скрытое поле в jsp 'rowIndexes' не изменяется и не имеет значения, когда у меня было автоматическое поле, нажав кнопку "+".

У кого-нибудь есть решение?

спасибо

1 Ответ

0 голосов
/ 13 марта 2019

Есть несколько проблем с вашим кодом, которые вы хотели бы решить,

  • aui устарела, и вам следует избегать, когда это возможно

предпочитаю теги типа

 <liferay-frontend:edit-form> 
 <liferay-frontend:edit-form-body>
 <liferay-frontend:fieldset-group>      
 <liferay-frontend:fieldset>

Следующая структура должна работать на последних версиях Liferay:

        <liferay-frontend:fieldset >
            <div id='emailAdress-fields'>
                <div class='lfr-form-row lfr-form-row-inline'>
                    <div class='row-fields'>

                    </div>
                </div>
            </div>
        </liferay-frontend:fieldset>

Ваш скрипт выглядит нормально

<aui:script use='aui-base'>
    A.use('liferay-auto-fields',function(A) {
        new Liferay.AutoFields({
            contentBox: '#emailAdress-fields',
            fieldIndexes: '<portlet:namespace/>rowIndexes'
        }).render();
    })
</aui:script>
...