2017-02-14 1 views
1

Ich versuche, Javascript-Objekt zu Struts2 Autocompleter Aktion durch Parameter zu senden. Aber es funktioniert nicht.Wie man JavaScript-Objekt in Struts2 Autocompleter Aktion übergeben?

Hier ist mein Code:

<script> 
var nameList = new Array(); 
    function func1(element) 
    {  
     console.log(element.value); 
     var index = nameList.indexOf(element.value); 
     element.checked ? nameList.push(element.value) : nameList.splice(index,1);  
     console.log(nameList.length+"---- "+nameList); 
    } 
</script> 

<s:form name="baseForm" id="baseForm"> 

    <table width="100%" > 
     <tr> 
      <td ><s:text name="Units" /></td> 
      <td> 
       <s:iterator value="units" status="itr" id="un"> 
        <input type="checkbox" onclick="func1(this)" 
         name="unitList[<s:property value="#itr.index"/>]" 
         value="<s:property value="#un" />" /> 
       </s:iterator>  
      </td>     
     </tr>  
     <tr> 
      <td ><s:text name="Groups"/></td> 
      <td width="80%"> 
       <sd:autocompleter href='get_groups.action?unitList=%{nameList}' id='unitAutoComplete' name='unitGroup' loadOnTextChange='true' 
        loadMinimumCount='1' showDownArrow='false' autoComplete='false' /> 
      </td> 
     </tr> 
    </table> 
</s:form> 

Basierend auf den ausgewählten Einheiten, Gruppen sollten in Autocompleter bevölkert bekommen.

Also meine erste Frage ist Ist es möglich, Javascript-Objekt in Struts2 Aktion durch Parameter zu senden?

Wenn ja, bitte schlagen Sie mir vor, wie Sie das JavaScript-Objekt als Parameter in Aktion übergeben.

Antwort

0

Sie können es nicht in der gleichen Anfrage tun. Das Autocompleter-Tag wird auf der Serverseite gerendert, aber Sie möchten es auf der Clientseite mithilfe von JavaScript ändern, wenn es bereits gerendert wurde.

Am besten führen Sie einen Ajax-Aufruf an den Server und übergeben die Variable an die Aktion, in der sie ausgeführt wird, um die von der Autocompleter-Aktion zurückgegebene Liste zu ändern.

Wie Sie JavaScript-Objekt an Server übergeben, sollten Sie wissen, dass Sie JSON-Format benötigen. Sie können Action to accept dynamic json data from user interface lesen, um weitere Informationen zu erhalten, wie JavaScript-Objekte in JSON konvertiert und an die Aktion gesendet werden.

Verwandte Themen