2013-07-09 45 views
2

的bean的屬性我試圖用Struts填充選擇。但是,我收到此錯誤消息: 沒有可用於名稱下的屬性標籤的getter方法com.packagename.branchImpl 在其中查找的類中沒有名爲'label'的變量,所以我不知道它是如何尋找label沒有getter方法可用於名稱爲

我的JSP中進行選擇:

<html:select name="querySwiftLogForm" property="branch" > 
    <cain:optionsCollection name="querySwiftLogForm" property="branchList" /> 
</html:select> 

struts_config.xml

<form-bean name="querySwiftLogForm" type="com.citibank.cain.controller.web.struts.forms.QuerySwiftLogForm"> 
</form-bean> 

表單類是一個非常典型的實體類

有關爲何發生此錯誤的任何建議?

回答

2

這可能是一個錯字<cain:optionsCollection應該是<html:optionsCollection。最後一個標記使用property屬性來收集具有labelvalue屬性的bean。如果在集合Bean中有不同的屬性名稱,則可以使用標記的labelvalue屬性指定它。例如,如果你有一個集合List<MyBean>

public class MyBean implements Serializable { 
    private String key; 
    private String name; 
    //getters and setters for both 

} 

那麼你應該使用

<html:select name="querySwiftLogForm" property="branch" > 
    <html:optionsCollection name="querySwiftLogForm" property="branchList" label="name" value="key"/> 
</html:select> 

如果你沒有,你可以用收集使用一個bean,那麼你可以使用LabelValueBean。你需要用該bean的實例填充集合。然後lablevalue屬性不是該bean所必需的,因爲它將使用默認值。

此外,如果使用映射到該操作的表單,那麼name屬性不是必需的。

+0

謝謝你們兩位羅曼和JB。你是對的,我需要設置標籤和值,但我也刪除了自定義標籤,並使用正常的html:optionsCollection。我們將擔心新一天的公司定製標籤! – cianBuckley

0

它尋找一個標籤屬性,因爲這就是optionsCollection做:

這個標籤上豆的集合,其中每個bean都有一個標籤屬性和價值屬性進行操作。這些屬性的實際名稱可以使用此標籤的標籤和值屬性進行配置。

1

沒有可用的屬性的getter方法與bean的名字

我沒有張貼完整的錯誤和JSP以及所有所以才明白

  • 首先檢查屬性文件,如果你正在使用它。
  • 然後檢查屬性名稱 - 如名稱,密碼
  • 然後檢查您定義的setter和getter方法。仔細檢查。
  • 然後你發現setter和getter是不同的,那麼它應該是

例如:

public void setName(String name) { 
    this.name = name; 
} 
public String getName() { 
    return name; 
} 

儘管可能爲:

public void setname(String name) 
{ 
    this.name = name; 
} 
public String getname() 
{ 
    return name; 
} 

只是一個小錯誤,而使用setter和getter。

相關問題