Struts2 radio:如果未设置模型,则预设值

Posted

技术标签:

【中文标题】Struts2 radio:如果未设置模型,则预设值【英文标题】:Struts2 radio: preset value if model is not set 【发布时间】:2016-06-25 15:38:32 【问题描述】:

我的表单页面中有一个单选标签。默认选择“否”。

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

但如果我选择“是”并将表单保存到数据库并重新渲染,那么当数据库和接受属性设置为“是”时,收音机仍显示“否”。

我错过了什么?

【问题讨论】:

【参考方案1】:

使用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 属性预设它。

【讨论】:

以上是关于Struts2 radio:如果未设置模型,则预设值的主要内容,如果未能解决你的问题,请参考以下文章

玩笑配置错误:“未找到预设 @shelf/jest-mongodb。”

漏洞通告Struts2远程代码执行漏洞通告(S2-057)

如果要销毁未保存数据的视图,则显示警告

浅谈struts2标签中的2个非经常常使用的标签的使用方法(radio和select)

如果未提供模型,则 ASP.NET MVC 自动模型实例化

FBX 模型的面(某些)未正确渲染