2013-09-24 64 views
0

Struts(1.38)noob,並且出現以下錯誤: 沒有getter方法可用於名爲hsForm的bean的屬性hs.hasRelationshipToTeam。 我被告知要在HSDivForm中創建一個getHs和setHs方法,但這是問題所在嗎?或者我該怎麼做呢?沒有getter方法可用於名稱爲bean的屬性

我的豆:

public class HS extends Entry implements Serializable,Cloneable { 
    private Boolean hasRelationshipToTeam = false; 

    public boolean isHasRelationshipToTeam() 
    { return hasRelationshipToTeam; } 

    public void setHasRelationshipToTeam(boolean hasRelationshipToTeam) 
    { this.hasRelationshipToTeam = hasRelationshipToTeam; } 
} 

我的形式:

import my.bean.HS; 

public class HSForm extends ActionForm 
{ 
    private HS hs = new HS(); 

    public HSForm() 
    { super(); } 
} 

我的jsp:

<html:form styleId="HSDivForm" action="/disclosure/hsAction" > 
<table> 
    <tr id = "q-rel"> 
    <td colspan="2" align="center"> 
     <br /> 
     Is there a team relationship? 
     <br /> 
     Yes<html:radio property="hs.hasRelationshipToTeam" value="yes" />  
     No<html:radio property="hs.hasRelationshipToTeam" value="no" /> 
    </td> 
    </tr> 
</table> 
</html> 
+0

豆與'get'和'set'一起工作。另外,你在'isHasRelationshipToTeamy'中有'y' –

+0

@SotiriosDelimanolis bean也以'is'作爲前綴 - 只要屬性是'boolean' –

+0

對不起,那個y不知怎麼進到那裏。 。 。這是對我的代碼,但沒有運氣。 – sharcfinz

回答

0

改變你消氣劑

public boolean isHasRelationshipToTeam() 
    { 
    return hasRelationshipToTeam; 
    } 

以前它是

isHasRelationshipToTeamy() y is there in the end<---- 

而且我懷疑你的宣言也

private Boolean hasRelationshipToTeam = false; 

改變它

private boolean hasRelationshipToTeam = false; //boolean is primitive here 

對於普通的Java類,你可以給任何名字給它,返回任何variable

但豆有一個標準格式,你不能改變它們。

+0

對不起,那個y不知何故進入了那裏。 。 。這是對我的代碼,但沒有運氣。 – sharcfinz

+0

布爾怎麼樣??你爲什麼要包裝?將其更改爲'primitive',然後嘗試。 –

+0

我以爲bean spec內省了方法,而不是私有實例 - 畢竟,一個方法不必具有基礎值,他們可以返回計算值。轉換應該隱式發生,不是? –

1

這是因爲在你的屬性的類型:

private Boolean hasRelationshipToTeam = false; 

當聲明你的屬性爲Boolean,則Introspector並不認爲這是一種原始的boolean所以它需要一個getXXXsetXXX

如果屬性是boolean原始類型,Introspector期望無論是isXXXgetXXX,具有setXXX方法捆綁在一起。

getXXXisXXX是你的getter方法,而setXXX是你的setter方法。

我希望這會有所幫助。

相關問題