如何在布尔值中保留NULL状态从JSP发送空字符串到Action

 KX林 发布于 2023-01-19 13:34

我在搜索页面中有一个条件是boolean。由于它不是强制性的,因此我不能使用复选框,因为我可能想跳过它。

JSP


行动

private Boolean myBooleanCriterion;

/* Getter and Setter */

我们知道boolean默认为false,而Boolean默认为null,则第一次呈现页面时就可以了(显示“做出选择”)。

但是,在POST之后,Struts会实例化Boolean属性(默认为false),即使该属性找到""为值也是如此,因此当我返回JSP时,该值会预先选择为false“ BAR”)。

如果值是"",则如何指示Struts不创建该变量的实例,将其保留为原始null状态?我是否需要创建一个Converter或在.properties文件中指定内容?(我从这个答案中获得的代码基本上与示例.2中的代码相同)

我正在使用(略有自定义)paramsPrepareParamsStack拦截器堆栈。

我觉得自己是否想念一些愚蠢的东西。

1 个回答
  • 由于XWorkBasicConverterconvert boolean-s 与转换-s的方式完全相同,因此Boolean使用Boolean.valueOf()方法将空字符串or null转换为false

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

    2023-01-19 13:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有