用 javascript 数组填充 struts2 select 标签



是否可以在加载时用javascript数组填充Struts 2选择标签?

我有一个代码

<s:select id="attrStpSel" name="attrStpSel" headerKey="-1"
          headerValue="Select" list="${attributeActions}"
          labelposition="left" onchange="displaySelectAction()"
          cssStyle="width: 300px;" />

这是页面中的脚本。

<script type="text/javascript">
    $(document).ready(function() {
        var attributeActions = [ 'Add', 'Update', 'Search' ];
    });
</script>

由于它是一个硬编码值,我不希望从操作中填充它们。 使用上面的代码,JavaScript变量attributeActions不会被拾取。

静态列表填充到 Struts 2 选择标签中的理想方法应该是什么?

您可以使用#{}创建一个内联列表:

<s:select name = "attrStpSel" 
     headerKey = "-1"
   headerValue = "Select" 
          list = "#{'Add','Update','Search'}" />

您还可以使用相同的表示法创建内联映射:

<s:select name = "attrStpSel" 
     headerKey = "-1"
   headerValue = "Select" 
          list = "#{'0':'Add' , '1':'Update' , '2':'Search'}" />

Struts select 标签呈现普通 html select 。它还向生成的 html 添加额外的标签、属性、CSS,因为它是 UI 标签。您可以阅读有关选择标签的更多信息。

呈现选择类型的 HTML 输入标记。

如果你想用javascript填充这个选择标签,你可以做这样的事情

$(function() {
    var attributeActions = [ 'Add', 'Update', 'Search' ];
    var $select = $('#attrStpSel');
    $select.find('option').remove();
    $('<option>').val("-1").text("Select").appendTo($select);
    $.each(attributeActions, function(index, value) {
      $('<option>').val(value).text(value).appendTo($select);
    });
});

最新更新