![](/img/trans.png)
[英]How to convert field of the list item via custom Struts type converter?
[英]Struts 2 type converter issue
我正在尝试使用自定义类型转换与属性文件进行操作。
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
文件与action类并行转换为config:
bean.rectangle=struts2.typeconverters.RectangleTypeConverter
我尝试将键作为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
bean.rectangle=struts2.typeconverters.RectangleTypeConverter
- 这是错误的
您必须使用正确的类名和fullpath,而不仅仅是属性名称。
mypackage.Rectangle=struts2.typeconverters.RectangleTypeConverter
- 希望你真的有一个名为struts2的包,虽然我会严格避免这样的包名。
如果您的Action类正在使用Model Driven,那么您需要对自定义类型转换器使用此方法:
http://struts.apache.org/release/2.3.x/docs/type-conversion.html (请参阅标题为将类型转换器应用于bean或模型的部分)。
在您的示例中,我将转换属性文件名更改为MyJavaBean-conversion.properties,并将其放在与MyJavaBean.java相同的包中。
在MyJavaBean-conversion.properties中,我将密钥更改为:
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版本,那么确实可以使用。
布鲁斯菲利普斯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.