需要布尔转换器 Struts2 来表示是、否、空白值

2024-02-12

我需要根据 UI 表单元素上选择的值保存数据

<s:select key="invoice.productSold" list="${productSold}" />

ProductSold 下拉列表值“”(空白)、“是”、“否”。

我的布尔转换器

public class BooleanConverter extends StrutsTypeConverter {

@Override
/*From form*/
public Object convertFromString(Map context, String[] values, Class toClass) {
        String value = values[0];
        if (value == "") {
            System.out.println("null");
                return null;
        }
        if ("No".equalsIgnoreCase(value) || "0".equals(value)) {
                return "false";
        } else if ("Yes".equalsIgnoreCase(value) || "1".equals(value)) {
                return "true";
        } else {
            return null;
        }
}

@Override
public String convertToString(Map context, Object o) {
        Boolean value = (Boolean) o;
        return String.valueOf(value);
}

}

public class Invoice{

Boolean productSold;
<getter>
<setter>
}

Issues

  1. 我的表单下拉列表选择“是”并更新;更新后我的下拉列表不显示“是”。它显示空白。
  2. 在表单上选择“是”时,ConvertFromString 方法返回“true”,而 ConverToString 方法返回“false”。

动作类


public UpdateAction extends ActionSupport{
protected List<String> productSold;
public List<String> getProductSold() {
    List<String> myOptions= new ArrayList<String>();
       myOptions.add("");
       myOptions.add("Yes");
       myOptions.add("No");

    return myOptions;
}


您不需要自定义布尔转换器,使用 Struts2 国际化功能来获取布尔值的“好”文本。 放true = Yes and false = No到您的消息属性,然后使用listValue的属性<s:select>标记来调用getText获取消息的方法true and false.

<s:select key="invoice.productSold" list="productSold" listValue="%{getText(top)}"/>

顺便说一句,你不需要在里面使用任何“特殊”符号list属性从值堆栈中获取值。

顺便说一句第二:你不需要这个productSold方法在你的操作中,相反,你可以使用 OGNL 列表表示法在 JSP 中定义是/否列表{...}.

<s:select key="invoice.productSold" list='{"", true, false}' listValue="%{getText(top)}"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要布尔转换器 Struts2 来表示是、否、空白值 的相关文章

随机推荐

  • 在Python中解析json字段

    有没有关于在 python 中解析 json 属性的好教程 我希望能够解析 ok 字段的真实值 以及名为 client ind 1 的索引 我不明白 python 文档对这个主题的覆盖范围 如果有人可以解释或向我指出更好的资源 那就太棒了
  • Cordova谷歌地图API密钥足够安全

    我想知道我现在使用的 Google 地图 API 密钥是否安全 因为我有一个带有 Google 地图的 Cordova 应用程序 所以我生成了一个 API 密钥 我无法将我的域密钥列入白名单 因为它在手机上运行客户端 此外 任何解压我的应用
  • 在 WinForms 中使用 XAML

    我想使用 XAML 在完整的 WinForms 应用程序中编译时生成类 尽管我愿意接受建议 但我不想使用 WPF 看起来这应该是可能的 但我找不到任何关于具体如何实现的信息 我发现的最接近的是这个页面 http anoriginidea w
  • 如何在故事板或 xib 中选择背景视图

    如果我用鼠标在情节提要或 xib 中选择一个视图 Xcode 将选择最前面的视图 我知道我可以选择文档大纲中的其他视图 但如果我想抓取背景视图并用鼠标移动它 当我在故事板中单击时 最前面的视图会再次被选中 我认为有一种方法可以循环浏览视图并
  • Visual Studio 2008 支持经典的 ASP 开发吗?

    Visual Studio 2008支持经典的ASP开发吗 我创建经典 ASP 网站已经很多年了 我想知道我是否可以使用我当前的工具集 或者我是否必须放弃使用记事本 Thanks Matt 我知道 VS 2008 现在包含经典 ASP 的智
  • 无法通过 AVPlayer 通过 HTTP 播放 mp3 文件

    我正在尝试通过 AVPlayer 播放 MP3 文件 let url URL string http transom org wp content uploads 2004 03 stereo 40kbps mp3 7 let asset
  • 关于学习“如何思考功能性”的建议?

    作为函数式语言的新手 几周前我开始接触 Erlang 我能接触到的第一种函数式语言 我开始写一些小算法 比如left rotate list bubble sort merge sortETC 我发现自己经常迷失在诸如 我应该使用辅助列表来
  • EJB Glassfish v3.1.2 客户端向会话 bean 传递的数据始终为 null

    我在调用会话 bean 方法从客户端传递方法参数时遇到问题 应用程序中 到达方法调用的数据始终为 null 或设置为默认值 而方法的过程与对象配合得很好 例如 我们有方法来持久化一个对象实体addStudent Student Studen
  • Snakemake 中“未给出通配符错误值”

    我正在尝试使用 Snakemake 制作一个简单的管道 从网络上下载两个文件 然后将它们合并到一个输出中 我认为可行的是以下代码 dwn lnks 1 https molb7621 github io workshop downloads
  • 水平滚动条未显示在我的文本框中

    在 Winform C 应用程序上 我在表单上显示一个文本框 该文本框将显示一行 仅一行 我想展示并使用水平滚动条 我将属性 滚动条 设置为水平 滚动条不显示 我将 WordWrap 添加为 false ScrollBar 不显示 我将 M
  • 我应该忽略 React 警告:输入元素不应从不受控制切换到受控制吗?

    错误代码 警告 组件正在更改要控制的时间类型的不受控输入 输入元素不应从不受控制切换到受控制 反之亦然 在组件的生命周期内决定使用受控或非受控输入元件 描述 所以我有一个组件 可以根据数组中的项目动态呈现多个输入字段 我的数组包含 7 天
  • C++ typedef 类型名 类名::模板

    我无法解析以下代码行的含义 typedef typename Allocator template rebind
  • “Groovy:无法解析类...”(LoginController.groovy 中的导入错误)

    我正在尝试使用 弹簧安全核心 2 0 RC2 使用 Grails 版本 2 3 1 但有我自己的LoginController groovy 按照伯特的笔记 here https stackoverflow com questions 19
  • 用 DOS 显示数字

    我的任务是编写一个程序来显示我的线性地址 程序的PSP 我写了以下内容 ORG 256 mov dx Msg mov ah 09h DOS WriteStringToStandardOutput int 21h mov ax ds mov
  • 为什么这个 bash 提示符表现得很奇怪/消失,我该如何修复它(OS X)?

    我承认我使用了有点冗长的 bash 提示符 username Wed April 01 12 00 00 最近 我有了一个好主意来改变它 以便根据前一个命令的退出值 如果成功 的内部元素将是绿色的 如果失败 它们将是红色的 我让它在大多数情
  • 块范围内的 thread_local

    有什么用thread local块范围内的变量 如果一个可编译的示例有助于说明这个问题 那就是 include
  • Heroku 上更新到 Rails 3.1 时的资产管道

    我刚刚将 Heroku 上的应用程序从 Rails 3 0 升级到 3 1 并且正在尝试使资产管道正常工作 主要问题是我可以从 heroku 日志中读取每个资产的以下行 2011 09 03T16 35 28 00 00 app web 1
  • WCF ChannelFactory 和 OpenTimeout

    在客户端中 我正在尝试连接到正在更改的 WCFOpenTimeout属性设置为 5 秒 但它不起作用 这是我创建通道的方式 NetTcpBinding bind new NetTcpBinding SecurityMode None bin
  • 将字符串与枚举进行比较

    我正在使用名为 FindBugs 的静态分析工具分析以下代码 if str equals enum SOMEVALUE do something 其中 str 是字符串 enum 是枚举 该工具会为此代码生成以下警告 并指出 此方法对没有公
  • 需要布尔转换器 Struts2 来表示是、否、空白值

    我需要根据 UI 表单元素上选择的值保存数据