如何使用 Struts 2 通过 Ajax 进行编辑

问题描述 投票:0回答:1

我想按照以下逻辑编辑数据库中的某些元素: 我从下拉列表中选择了一个项目(自动完成),其他字段根据已选择的字段直接从数据库填充,以便我可以编辑数据。

如何在JSP页面中使用Ajax来做这样的处理?

$(document).ready(function() {
  $('#datepicker').datepicker();

  $('#field1').change(function()
          {

//code ajax wich select the row from database and return the values on the same form

      
      }
  );

  
});

JSP代码:

<s:form  cssStyle="border:0;" validate="true" action="add" namespace="/" >
<sx:autocompleter id="field1"  label="field1" list="liste1" name="liste"></sx:autocompleter>
<s:textfield name="field2" label="field2" size="15" ></s:textfield>
<s:select style="height:30px; width:125px" name="field3" label="field3"  headerValue="Select" list="liste2"></s:select>
<s:submit style="height:30px; width:125px" name="Valider" value="Valider"></s:submit>
</s:form>

请问有什么帮助吗?

编辑:

我想传递自动完成字段中选定的值

$(document).ready(function() 
    {
      $('#field1').change(function()
        {

          var selectedValue = $('#field1 option:selected').val();
            if ($.trim(selectedValue).length > 0) 
             {
            
                $.ajax(
                {
                    type: 'POST', 
                    url: 'action/action1',
                    data: { field1 : selectedValue},
                    dataType: 'json',
                    async: false ,
                    contentType: 'application/json; charset=utf-8',
                    success: function(){window.alert(selectedValue);}
        
                 });

            }

        }
      );

      
    });

编辑2:

行动:

public String query()
{
    if( !field1.equals("") || field1 != null)
    {
        Service = new ServiceImpl();
        v = new Vehicule();
        v= Service.getVehiculeByImmat(field1);
        map.put(field2.toString(), v.getfield2().toString());
        map.put(date.toString(), v.getdate().toString());

    }
                return "success";

}

struts.xml:

<action name="query" class="action.GestionVehicules" method="query">
          <result name="success" type="json">map</result>
    </action>

ajax:

$(document).ready(function() 
    {
      $('#field1').change(function()
        {

          var selectedValue = $('#field1').val();
            if ($.trim(selectedValue).length > 0) 
             {
            
                $.ajax(
                {
                    type: 'POST', 
                    url: '<s:url action="query"/>',
                    data: { field1: selectedValue},
                    dataType: 'json',
                    success: function(){alert(data);}
        
                 });
                
            }
          

        }
      );

      
    });    

是真的吗?

编辑3:

javascript :

$(document).ready(function() 
    {
      $('#field1').change(function()
        {

          
          var selectedValue = $('#field1').val();
            if ($.trim(selectedValue).length > 0) 
             {
          alert(selectedValue);
                $.ajax(
                {
                    type: 'POST', 
                    url  : "<s:url action='query'/>",
                    dataType : 'json',
                    data: { field1: selectedValue},
                    success: function(result){
                    // alert(result);
                     if (result.length > 0) {
                            //code to put hashmap values into textfield

                                //put map.get("key1") into textfield1 ....

                            });
                        }
                     
                },
        
                 });

            }

        }
      );

      
    });

编辑4:

javascript :

  $.each(result, function(key,value)
        {                               $("#"+key).val(value); // how can it works with dropdown list ??
    } );
    

                                       

                
java jquery ajax jsp struts2
1个回答
0
投票

要传递所选值(如果已选择),请使用简单的 ajax 请求

$.ajax(
{
    type: 'POST', 
    url: '<s:url action="action1"/>',
    data: { field1 : selectedValue},
    //async: false ,
    success: function(data){
      alert(data);
    }
 });

在操作类中创建一个名为

field1
的字段,其中包含 getter 和 setter。然后您可以选择返回结果类型。如果使用 json 结果,则该字段将被序列化并添加到您在成功处理程序的数据中获取的 json 对象。

© www.soinside.com 2019 - 2024. All rights reserved.