簡體   English   中英

Struts2 將列表數據從 JSP 發送到 Action 類:替代方式

[英]Struts2 sending list data from JSP to Action class: alternative way

我正在向一位同事解釋如何使用此處此處解釋的索引從 JSP 頁面獲取列表數據返回到操作類。 他不太明白,自己摸索了一下,直到突然他完全不使用索引,讓它起作用了!

在他的 JSP 頁面中,他有:

<input type="checkbox" name="contactNameList" value="someValue1">
<input type="checkbox" name="contactNameList" value="someValue2">
<input type="checkbox" name="contactNameList" value="someValue3">
<input type="checkbox" name="contactNameList" value="someValue4">

在他的動作課上,他有“合適的”二傳手:

public List<String> getContactNameList()

public void setContactNameList(List<String> list)

我對為什么這項工作感到困惑。 認為這是有效的,因為他發送的是非 bean 數據(在這種情況下是字符串),並且在 Struts2/OGNL 中有一個智能構建,可以將值附加到列表中而不是覆蓋它們。

任何人都可以詳細解釋在這種“無索引”情況下的幕后情況? 字符串列表是如何用上面的片段實例化和填充的?

您應該理解 bean 數據而不是 bean 數據作為參數傳遞給操作。 如果您實現ParameterAware則參數具有您可以找到的結構。

請注意,將返回給定名稱的所有參數值,因此映射中的對象類型為java.lang.String[]

然后 XWork Type Conversion 盡最大努力將此映射轉換為 bean 屬性。 請參閱內置類型轉換支持

框架中的常規類型轉換是透明的。 通常,您需要做的就是確保 HTML 輸入具有可在 OGNL 表達式中使用的名稱。 (HTML 輸入是表單元素和其他 GET/POST 參數。)

在沒有索引的情況下,參數映射在一個鍵下,而不是在它們自己的名稱下使用索引名稱。

您必須在上面的代碼中設置索引值

喜歡

<input type="checkbox" name="contactNameList[0]" value="someValue1">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM