我尝试过一个示例,其中我使用UserAction类的insert方法插入了一个用户。
在插入时,我已将成功重定向到UserAction的loadAdd方法。
在重定向期间,我已将参数传递为
$ {用户}
在struts 2.0.14中,这给出了一个ognl异常。
而当我通过时
$ {user.id}
它有效。
我的观察结果表明这是struts或ognl中的一个错误,它在解析复杂对象时解析简单数据类型。
任何解决方法请建议。
或者
有没有办法可以在重定向的操作中转发完整的操作上下文或值堆栈
答案 0 :(得分:2)
这不是一个错误。
Struts2使用类型转换系统在字符串(本机HTTP)和其他对象之间进行转换。它具有所有标准基元,盒装基元,集合,映射等的默认类型转换器。如果要允许Struts2自动在字符串和User类之间进行转换,则需要为其创建类型转换器。否则,您可以使用$ {user.id},这是一个原始或盒装原语。
http://struts.apache.org/2.2.3/docs/type-conversion.html
此外,ValueStack是按请求进行的,因此当您重定向并创建新请求时,之前的请求ValueStack将不再可用。