1

私はストラットに慣れていないので、ラジオボタンに関係するストラットコードの領域に特にこだわっています。私が何をしても、次から偽の値しか得られません: (CostForm)

<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 がラジオ ボタンが異なる値で同じプロパティを参照することを許可していないということです。

4

1 に答える 1

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ですか?)、アクション/フォームの不一致(アクションマッピングで正しいフォーム「名前」を使用していますか?)などを再確認します。の上。

于 2011-10-08T12:08:46.533 に答える