如何在 struts 2 中使用枚举参数?
我试图让 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
I'm trying to get an Action in Struts 2 to work with an Enum as an input parameter. What I've done so far looks like:
public TestAction {
public enum Module {
VALUE1;
}
private Module module;
public void setModule(Module module) {
this.module = module;
}
public Module getModule() {
return module;
}
}
But when trying to use this I get an xwork conversion error, and the action itself doesn't even execute. Can I make this work as is, or should I provide setModule(String) myself?
Edit: I'm using struts 2.1.6
The URL I'm trying: /test.action?module=value1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它应该立即将字符串绑定到枚举。我认为从 2.1.x 开始,枚举类型转换器就一直处于默认配置。
如果您不确定以下内容是否在我的 2.0.14 应用程序中的
xwork-conversion.properties
中编辑:作为对评论的回应,如果您需要忽略分配的大小写一个枚举,你有以下选择:
It should bind a string to a enum straight away. I think the enum type converter has been in the default configuration since I think 2.1.x.
if you are unsure the following is in my
xwork-conversion.properties
in a 2.0.14 appEDIT: In response to the comment, if you need to ignore case for assigning an enum you have the following choices:
我只是在从操作转发到重定向操作(而不是转发操作)时遇到类似的问题,Struts 无法正确识别我正在使用参数
List
并且我必须使用将 String 参数转换为List
的代理方法。I just encounter a similar issue when forwarding from an action to a redirect action (instead of an action forward), Struts will not properly recognize I am using a parameter
List<Enum>
and I had to use a proxy method to convert from the String parameter into aList<Enum>
.