Mendapatkan beberapa nilai dropdown menggunakan satu panggilan json dari database

Saya memiliki persyaratan di mana saya harus mengisi beberapa dropdown dengan nilai yang akan diambil dari database. Saya menggunakan kerangka struts2 dan memanggil tindakan json yang mengembalikan tipe json. Tetapi masalahnya di sini adalah untuk setiap dropdown saya harus menulis tindakan terpisah yang menyebabkan banyak panggilan berbeda ke DB.

Apakah mungkin untuk melakukan ini dalam satu panggilan tindakan json sehingga semua nilai yang diperlukan dapat diambil hanya dengan menggunakan satu tindakan json dan nilai akan diisi dalam dropdown yang sesuai.

Saat ini apa yang saya lakukan terlihat seperti ini yang berfungsi dengan baik tetapi saya sedang mencari solusi (jika ada) di mana kita tidak memerlukan banyak panggilan <s:url/> ini.

<s:url var="fillA" action="fillA" />
<sj:select id="dropdownA" href="/id%{fillA}" list="listA"/>

<s:url var="fillB" action="fillB" />
<sj:select id="dropdownB" href="/id%{fillB}" list="listB"/>

<s:url var="fillC" action="fillC" />
<sj:select id="dropdownC" href="/id%{fillC}" list="listC"/>

person Gaurav Parek    schedule 16.09.2015    source sumber
comment
Bahkan dengan satu tindakan Anda memerlukan tiga kueri berbeda (kecuali melakukan sirkus), jadi keuntungannya adalah apa, menghindari pembukaan/penutupan koneksi (bukankah digabungkan?). Dalam kasus seperti ini saya menyarankan cache, per pengguna atau per aplikasi dengan @Singleton sesuai dengan spesifikasi proyek Anda (jumlah pengguna, jumlah data, jumlah koneksi bersamaan, dll...)   -  person Andrea Ligios    schedule 16.09.2015
comment
Jika Anda benar-benar harus menghindari banyak permintaan, saya akan menggabungkannya menjadi satu tindakan yang mengembalikan objek JSON yang berisi masing-masing objek yang dihasilkan oleh tiga metode asli Anda. Selain itu, bukankah memiliki tiga tag <sj:select> terpisah secara otomatis menjalankan tiga kueri terpisah, meskipun diarahkan ke URL yang sama?   -  person Shotgun Ninja    schedule 16.09.2015
comment
@AndreaLigios terima kasih.   -  person Gaurav Parek    schedule 19.09.2015
comment
AFAIR sj;select memilih terlebih dahulu nilai-nilai tersebut dalam respons tetapi jika Anda menggunakan opsi pelengkapan otomatis maka untuk setiap respons banyak permintaan XHR yang dibuat. Jika itu adalah satu sumber daya yang dapat diambil dengan satu permintaan XHR tetapi jika sumbernya berbeda maka Anda tidak dapat melakukan apa pun dengannya, browser menangani situasi menggunakan header kontrol cache.   -  person Roman C    schedule 24.09.2015
comment
@AndreaLigios: Saya telah memeriksanya dan untuk kebutuhan kami akan lebih baik jika memiliki cache per basis aplikasi, saya belum pernah menerapkan cache sebelumnya jika Anda dapat memberikan tautan atau contoh apa pun untuk implementasi tersebut akan membantu saya.   -  person Gaurav Parek    schedule 06.10.2015
comment
@GauravParek Anda sangat beruntung. Jangan ragu untuk memberi suara positif pada pertanyaan dan/atau jawabannya.   -  person Andrea Ligios    schedule 06.10.2015