是否可以在加载时用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);
});
});