2015-11-30 2 views
0

J'ai un doute.Champ automatique liferay dans un portlet personnalisé

J'ai un main.jsp qui inclut un autre 2 jsp et un bouton d'envoi. Les deux font partie d'un formulaire. Le second comprend un champ automatique avec un validateur:

<div id="groupwork-fields" > 
    <div class="lfr-form-row lfr-form-row-inline"> 
     <div class="row-fields"> 
      <aui:input fieldParam='name' id="repetibleName" cssClass="full-size" 
       name="<%=AwardConstants.FIELD_OTHERS_NAME%>" 
       label='<%=AwardConstants.LABEL_NAME %>' 
       value=""> 
       <aui:validator name="custom" errorMessage="fill-name"> 
         function (val, fieldNode, ruleValue) { 
          var result = true; 
           var selector = document.getElementById("<portlet:namespace/>select-group").value; 
           if (selector == 1 && val === "") { 
            result = false; 
           } 
           return result; 
         } 
        </aui:validator> 
       </aui:input> 
       <aui:input cssClass="full-size" 
        id="email0" fieldParam='email0' 
        name="email0" 
        label='<%=AwardConstants.LABEL_EMAIL %>' 
        value=""> 
        <aui:validator name="maxLength">100</aui:validator> 
        <aui:validator name="email"></aui:validator> 
        <aui:validator name="custom" errorMessage="fill-email"> 
         function (val, fieldNode, ruleValue) { 
          var result = true; 
          var name = document.getElementById("<portlet:namespace/>name0").value; 
          if (name !== "" && val === "") { 
            result = false; 
          } 
          return result; 
         } 
        </aui:validator> 
      </aui:input> 
     </div> 
    </div> 
</div> 

Après validation de ces champs et en appuyant sur le bouton d'envoi va à la méthode suivante:

public void saveAutofieldData(ActionRequest actionRequest, ActionResponse actionResponse) throws PortalException, SystemException { 

    String groupworkIndexes = actionRequest.getParameter("groupworkIndexes"); 
    _log.info("::::::::::::::::groupworkIndexes:::::::::::::::::::::::" + groupworkIndexes); 

    /** 
    * Split the row index by comma 
    */ 

    String[] indexOfRows = groupworkIndexes.split(","); 
    _log.info("::::::::::::::::indexOfRows.length:::::::::::::::::::::::"+ indexOfRows.length); 

    for (int i = 0; i < indexOfRows.length; i++) { 

     String name = (actionRequest.getParameter("name"+ indexOfRows[i])).trim(); 
     String email = (actionRequest.getParameter("email"+ indexOfRows[i])).trim(); 
     _log.info("::::::::::::Name::::::::::::::" + name); 
     _log.info("::::::::::::Email::::::::::::::" + email); 
    } 
} 

Le problème est quand Il essaie de lire: actionRequest.getParameter("groupworkIndexes"); Je reçois null.

Merci d'avance

Répondre

0

J'ai finalement obtenu la solution. Tous les exemples que je l'ai vu ont été avec « actionRequest » pour récupérer les données:

String groupworkIndexes = actionRequest.getParameter("groupworkIndexes"); 
    String name = actionRequest.getParameter("name" + indexOfRows[i])); 

Mais dans mon cas, je l'ai utilisé les lignes suivantes:

String name = (uploadPortletRequest.getParameter("name" + indexOfRows[i])); 
    String groupworkIndexes = (uploadPortletRequest.getParameter("groupworkIndexes")); 

Pas toujours nous obtiendrions les valeurs préférées avec actionRequest