Struts2 radio: 没有设置模型时的预设值

Struts2 radio: preset value if model is not set

我的表单页面中有一个单选标记。默认情况下,"No" 是 selected。

<s:radio label="Yes NO" name="accept" list="#{'Y':'Yes','N':'No'}" value="'N'"/>

但是如果我 select 是并将表单保存到数据库并重新呈现,那么在设置数据库和接受 属性 时收音机仍然显示 'No'至:'Yes'。

我错过了什么?

对于 value="'N'",您强制值始终为 N。

您需要从属性动态读取值,在操作中预先设置它:

private String accept;

public String getAccept(){
    if (accept==null) { accept = "N"; }
    return accept;
}
<s:radio label="Yes NO" name="accept" list="#{'Y':'Yes','N':'No'}" value="%{accept}"/>

甚至更干净,完全删除 value 属性:

<s:radio label="Yes NO" name="accept" list="#{'Y':'Yes','N':'No'}" />

并且它会用name属性预设它。