gpt4 book ai didi

jsp - 如何在从 JSP 向 Action 发送空字符串的 boolean 值中保留 NULL 状态

转载 作者:行者123 更新时间:2023-12-02 21:31:15 24 4
gpt4 key购买 nike

我在搜索页面中有一个 boolean 值标准。由于它不是强制性的,所以我不能使用复选框,因为我可能想跳过它;

JSP

<s:select list = '#{ "":"Make your choice...", true:"FOO", false:"BAR" }'
name = "myBooleanCriterion" />

行动

private Boolean myBooleanCriterion;

/* Getter and Setter */

我们知道boolean默认为false,而Boolean默认为null,那么第一次页面已呈现,一切正常(显示“Make your choice”)。

但是,在 POST 之后,Struts 会实例化 Boolean 属性(默认为 false),即使它发现 "" 作为值,因此,当我返回 JSP 时,该值被预选为 false(“BAR”)。

如果值为 "",如何指示 Struts 不创建该变量的实例,而将其保留为原始 null 状态?我是否需要创建一个转换器,或者在 .properties 文件中指定某些内容? (我的代码与 example .2 from this answer 中的代码基本相同)

我正在使用(稍微自定义的)paramsPrepareParamsStack 拦截器堆栈。

我觉得我错过了一些愚蠢的事情。

最佳答案

因为 XWorkBasicConverter 转换 boolean-s 的方式与转换 Boolean-s 的方式完全相同,使用 Boolean.valueOf( ) 方法,空字符串或 null 将被转换为 false

为了在提交后获得 null,您需要为 Boolean 创建一个自定义转换器,或者根本不提交此参数。 (例如,如果所选值为 "",则使用 javascript 更改 name 属性)。

关于jsp - 如何在从 JSP 向 Action 发送空字符串的 boolean 值中保留 NULL 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22255612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com