我是struts的新手,我特别粘在struts代码的一个区域,这与单选按钮有关。无论我做什么,我都不能得到任何东西,除了一个假值从下面的:(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不允许单选按钮用不同的值引用相同的属性
给定形式:
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.
当我点击"否"one_answers"是"时,我在动作中得到预期的布尔值。
我会仔细检查拼写(英语拼写是"responsible";也许在Cost
中拼写正确?),动作/表单不匹配(您在动作映射中使用了正确的表单"name"吗?),等等。