[英]Populate List<String> in struts2 from form data
我覺得這應該非常明顯,但到目前為止我還沒有找到答案。
我想要一個字符串列表(或一個字符串數組,我真的不在乎)由 Struts2 中的表單數據填充。
我已經看到了幾個如何使用 beans 進行索引屬性的示例,但是將單個字符串包裝在 object 中似乎相當愚蠢。
所以我有類似的東西
public class Controller extends ActionSupport {
private List<String> strings = new ArrayList<String>();
public Controller() {
strings.add("1");
strings.add("2");
strings.add("3");
strings.add("4");
strings.add("5");
}
public String execute() throws Exception {
return ActionSupport.SUCCESS;
}
public List<String> getStrings() {
return strings;
}
public void setStrings(List<String> s) {
strings = s;
}
}
...
<s:iterator value="strings" status="stringStatus">
<s:textfield name="strings[%{#stringStatus.index}]" style="width: 5em" />
</s:iterator>
表單字段填充了它們的初始值(例如 1、2 等),但結果沒有正確回發。 setStrings
永遠不會被調用,但值被設置為空字符串。
有人知道發生了什么嗎? 提前致謝!
我相信您擁有它,您的 jsp 代碼將呈現如下內容:
<input type="text" name="strings[0]" style="width: 5em" value="1"/>
<input type="text" name="strings[1]" style="width: 5em" value="2"/>
<input type="text" name="strings[2]" style="width: 5em" value="3"/>
...
請注意,字段引用的名稱是“strings[x]”,因為您需要名稱只是“strings”。 我會建議類似:
<s:iterator value="strings" status="stringStatus">
<s:textfield name="strings" value="%{[0].toString()}" style="width: 5em" />
</s:iterator>
不確定上面的 value 屬性是否正確,但我認為這樣的事情會讓你得到想要的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.