如何通过javascript设置支柱列表2

How do i set the List of struts 2 through javascript?

本文关键字:列表 设置 何通过 javascript      更新时间:2023-09-26

当用户在上一个select元素中进行选择时,我会动态地将选项添加到select元素中。我在JSP页面中使用struts-html tag。有人能建议怎么做吗?

更具体地说,我需要使用Javascript填充struts2 tag(s:select list)

我有三个依赖的动态下拉列表,所有这些都是从数据库中填充的,所以我使用Ajax+jquery+Struts2通过操作调用数据库的查询,并通过(Ajax+json)将列表传递给javascript,在javascript中,我将s:select标记的list属性设置为json

这就是我的想法,如果是错误的,或者是否有更好的方法来完成

,请告诉我

一个清除选项是使用Struts2 Doubleselect。你需要做一些类似的事情

<s:doubleselect label="doubleselect test1" name="menu" list="{'fruit','other'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />
<s:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />

你可以在这里找到更多的例子

  • /支柱-2-双选择-示例

如果你不想使用双击,你可以在Jquery的帮助下使用简单的S2选择标记,我不确定你想从哪里获取第二个下拉列表的值,如果这是来自操作类,最好使用Struts2 JSON插件,它将帮助您将数据作为JSON发送回UI,并且您可以始终使用Jquery的JSON解析功能来解析JSON并像一样填写下拉列表

var formInput='state='+statedata;       
   $.getJSON('search/fillDropDown',formInput,function(data) {
     $("#district  option:first").val("-1").text("Please select a  district");
     $('.result').html('' + data.districts + '');
     $.each(data.districts,function(index, value){
     var districtid = document.getElementById("district");
      var option=new Option(value,value);
         try{
           districtid.add(option);
         }
        catch(e){
        districtid.appendChild(option);
        });
     });

在上面,我根据第一个下拉列表中选择的值填写另一个下拉列表,并使用JSON插件将动作列表作为JSON数据发送回来。