java - Struts 2 类型转换器问题

标签 java struts2

我正在尝试使用自定义类型转换和属性文件来执行操作。

Action 类正在为 bean 属性实现 ModelDriven。

public class WelcomeAction extends ActionSupport implements ModelDriven<MyBean>{

public String execute(){
    return SUCCESS;
}

private MyBean bean = new MyBean();

@Override
public MyBean getModel() {
    return bean;
}
}

Bean 类是:

public class MyBean{

private Rectangle rectangle;
public Rectangle getRectangle() {
    return rectangle;
}

public void setRectangle(Rectangle rectangle) {
    this.rectangle = rectangle;
}

}

我有 WelcomeAction-conversion.properties 文件与操作类并行,转换器配置为:

bean.rectangle=struts2.typeconverters.RectangleTypeConverter

我尝试将 key 设置为 bean、矩形等,但它不起作用,它没有使用转换器类。

如果我使用@TypeConverter注释或全局转换器,那么它工作正常。

我的 struts 2 版本是 2.3.15.1,知道可能是什么问题。

更新:创建了一个问题 https://issues.apache.org/jira/browse/WW-4249

得到正确的实现方法:http://www.journaldev.com/2221/struts-2-ognl-tutorial-with-custom-type-converter-example

最佳答案

如果您的 Action 类使用模型驱动,那么您需要遵循以下自定义类型转换器方法:

http://struts.apache.org/release/2.3.x/docs/type-conversion.html (请参阅标题为“将类型转换器应用于 bean 或模型”的部分)。

在您的示例中,我将转换属性文件名更改为 MyJavaBean-conversion.properties 并将其放置在与 MyJavaBean.java 相同的包下。

在 MyJavaBean-conversion.properties 中,我将 key 更改为:

      rectangle=com.journaldev.struts2.typeconverters.RectangleTypeConverter 

然后我构建了 .war 文件并在 Tomcat 7 下运行您的示例。矩形转换工作正常。

我认为您永远无法使用 http://struts.apache.org/release/2.3.x/docs/type-conversion.html 中解释的方法。 (请参阅标题为“将类型转换器应用于操作”的部分)当您的 Action 类使用 ModelDriven 时。如果您发现以前的 Struts 2 版本确实有效,请告诉我。

布鲁斯·菲利普斯

关于java - Struts 2 类型转换器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993091/

相关文章:

Java App Engine - session 在 GAE 服务器中不起作用

java - 使用 Hibernate 和 AOP 的审计模式映射

struts2 - struts2 迭代器标签中包含 contains

web-services - 如何从Struts2调用restful webservices?

java - Struts2 - SessionMonitor - 页面未正确重定向

javascript - 用javascript数组填充struts2 select标签

java - 不同客户端使用相同连接mysql JSP

java - Liquibase:使用序列

java - 带有 HTMLUnitDriver 的 Selenium 3.0.x

java - 如何使用 Java 11 获取 CPU 利用率