2011-10-06 54 views
1

我是struts的新手,我特別被困在與單選按鈕有關的struts代碼領域。無論我做什麼,我不能得到任何東西,但是從下面的假值:(CostForm)可以使用兩個無線標籤爲struts中的表單屬性設置布爾值嗎?

<td align="left" width="200px" colspan="2"> 
    <html:radio property="responsableBool" value="false"/>No 
    <html:radio property="responsableBool" value="true"/>Yes 
</td> 

它,然後從這段代碼初始化:

CostForm costform = (CostForm) form; 
Cost cost = new Cost(); 
costform.populateModel(cost); 

和populateModel剛有:PropertyUtils.copyProperties(cost,this);

我能想到的唯一的事情是struts不允許單選按鈕引用具有不同值的相同屬性。

+0

不允許單選按鈕引用具有不同值的相同屬性可能會消除*爲*的單選按鈕。 –

+0

嗯,我想也是這樣,除了某種原因,我不僅可以從表單中獲得一個值,而且不管我選擇什麼選項。我只是想澄清它可以完成。 –

+0

可能需要查看更多,或者詳細說明提交過程 - 這絕對有可能。 –

回答

0

給出的形式:

public class CostForm extends ActionForm { 
    private boolean responsableBool; // And getter/setter 
} 

的HTML:

<html:form action="/costsub"> 
    <html:radio property="responsableBool" value="false"/>No 
    <html:radio property="responsableBool" value="true"/>Yes 
    <html:submit/> 
</html:form> 

行動:

public ActionForward execute([args elided]) throws Exception { 
    CostForm costForm = (CostForm) form; 
    System.out.println(costForm.isResponsableBool()); 
    // etc. 

當我點擊 「否」 和 「是」 我得到預期的布爾行動內的價值。

我會仔細檢查類似拼寫的東西(英文拼寫可能是「負責任的」;也許它在Cost?中拼寫正確),動作/表單不匹配(您是否在動作映射中使用了正確的「名稱」 ?), 等等。

+0

@ DarkStar1最有趣的一種調試;) –

+0

@ DarkStar1它很諷刺,但是你正在使用Struts 1,所以......可能很糟糕;) –

+0

只是一個簡單的問題;它是否必須在表單bean中聲明爲屬性? –

相關問題