2010-08-18 10 views
9

Struts 2 eylem sınıfına dizi parametreleri gönderirken sorun yaşıyorum. Struts kullanıyorum 2.1.8.1.Ajax Çağrısı üzerinden Struts 2 ile HTTP Array Parametreleri

$.ajax({ 
    type: 'POST', 
    url: 'Myaction.action', 
    data: { 
     types: ["this", "is", "a", "test"] 
    } 
}); 

gerçekleşmesi bir duruma neden olur: jquery ajax yöntemi ile bir dizi gönderirken sorun

public class MyAction extends ActionSupport { 

    private String[] types; 

    public String execute() { 
     return SUCCESS; 
    } 

    public String[] getTypes() { 
     return types; 
    } 

    public void setTypes(String[] types) { 
     this.types = types; 
    } 
} 

: Burada

bazı örnek kod

ognl.ParseException: Encountered " "]" "] "" at line 1, column 7.

Diziyi Struts2 ac öğesine göndermek için jQuery'yi nasıl kullanabilirim tion sınıfı? Dahil etmem gereken bir ara kesicinin hatları boyunca bir şey var mı? Ya da jQuery'de bunu kaldırmak için bir seçenek var mı?

Ayrıca jQuery UI Sortable denetimi ile bu sorunla karşılaştım, ancak "[]" karakterlerini kaldırmak için bir regex kullanarak çözdüm. Bundan kaçınmak istiyorum, çünkü bu çözüm beni rahatsız ediyor. Sanırım dizgeyi, nesne gösterimini kullanmak yerine kendim yapılandırabilirim, fakat beni başka bir şekilde ikna edemezseniz, bunun yerine nesne gösterimini kullanmak istiyorum.

cevap

13

IIRC Struts jQuery 1.4+ biçimini sevmez, sen olsa geleneksel biçimini kullanabilirsiniz, sadece $.ajax() aramadan önce bu her zaman koyun:

$.ajaxSettings.traditional = true; 

Sen 1.4+ varsayılan hakkında daha fazla bilgi bulabilirsiniz vs $.param() documentation geleneksel serileştirme, en iyi örnek kısa örnek:

// <=1.3.2: (traditional in 1.4+) 
$.param({ a: [2,3,4] }) // "a=2&a=3&a=4" 
// >=1.4: (default in 1.4+) 
$.param({ a: [2,3,4] }) // "a[]=2&a[]=3&a[]=4" 
+0

Bu mükemmel çalışır, teşekkürler. – partkyle

+1

Tamam ... Bu küçük ama kritik değişikliklere nasıl güncel olabilirim? Cevabınız için teşekkür ederiz. – rsilva4

+0

Kendi yorumuma cevap verin: http://api.jquery.com/category/version/1.4/ – rsilva4