gpt4 book ai didi

java - 我如何在 struts 2 中使用枚举参数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:39 26 4
gpt4 key购买 nike

我正在尝试让 Struts 2 中的一个 Action 与一个 Enum 作为输入参数一起工作。到目前为止我所做的看起来像:

public TestAction {
public enum Module {
VALUE1;
}

private Module module;

public void setModule(Module module) {
this.module = module;
}
public Module getModule() {
return module;
}
}

但是当尝试使用它时,我得到了一个 xwork 转换错误,并且操作本身甚至没有执行。我可以按原样进行这项工作,还是应该自己提供 setModule(String)?

编辑:我正在使用 struts 2.1.6我正在尝试的 URL:/test.action?module=value1

最佳答案

它应该立即将字符串绑定(bind)到枚举。我认为枚举类型转换器自从我认为 2.1.x 以来一直处于默认配置。

  • 您使用的是什么版本的 struts 2?

如果您不确定以下内容是否在我的 2.0.14 应用程序中的 xwork-conversion.properties

java.lang.Enum = com.opensymphony.xwork2.util.EnumTypeConverter

编辑:作为对评论的回应,如果您需要忽略分配枚举的大小写,您有以下选择:

  • 将 enum 的值更改为实际小写 - 不是很好的风格,可能会使您的代码看起来有点奇怪
  • 为 java.lang.Enum 编写一个新的不区分大小写的类型转换器(我猜只是复制 xwork 和 toUpper 输入)
  • 为此特定情况添加一个新的 setModule(String)

关于java - 我如何在 struts 2 中使用枚举参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624053/

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