2016-03-04 43 views
1

是否可以在加載時用javascript數組填充Struts 2選擇標籤?用javascript數組填充struts2選擇標籤

我有一個代碼

<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 select標籤中的理想方式?

+0

爲什麼要使用JavaScript,以及爲什麼Struts標籤這個選擇標籤? –

回答

1

您可以#{}創建一個在線列表:

<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'}" /> 
0

Struts的標籤選擇呈現普通的HTML select。它還爲生成的html添加了額外的標籤,屬性,CSS,因爲它是UI標籤。您可以閱讀關於s:select標籤的更多信息。

呈現類型爲select的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); 
    }); 
});