我有一个Struts2的Web的应用程序。
当我更改语言为阿拉伯语,所有的查询字符串的URL,给予取消了一定的成绩。 我想这是因为?
被认为是一些变量名,那么它没有正确映射到Struts2的目标采取行动。
虽然目前互联网上的例子似乎好工作,所以我想这已经是与我的Struts配置。
<constant name="struts.devMode" value="false" />
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
<constant name="struts.custom.i18n.resources" value="struts,global"/>
<!-- <constant name="struts.action.extension" value="" />-->
<constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
<constant name="struts.patternMatcher" value="regex" />
只要语言是英语,网址就像http://localhost:8084/myaction?id=4
的作品完美的罚款,并返回所需的数据,但一旦语言发生了变化,该URL限制的行动不会被调用,而不是其他一些随机动作被调用。
[UPDATE]
随机行为不叫。 实际上,参数不被映射,因此,由于验证检查的动作,动作返回INPUT。 但是,当语言是英语,即参数被完全映射和返回成功相同的URL的作品。
[UPDATE 2]
<interceptor-stack name="rememberMeStack">
<interceptor-ref name="rememberme"/>
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="store">
<param name="operationMode">AUTOMATIC</param>
</interceptor-ref>
</interceptor-stack>
以上是我使用的拦截器栈。
[UPDATE 3]
http://localhost:8084/search?id=-1&...
只有值参数-1
是给OGNL异常Error Setting Expression
,其余的数字似乎很好地工作。
[UPDATE 4]
我用更多的语言尝试和揣摩的是,它不仅对阿拉伯语言的工作。 我想这事做与他们的左右对齐。
我也设法写一个小示例应用程序,这表明仅在语言为阿拉伯语,表单提交给误差及与其他任何其他语言(英语,中国,法国),它工作正常。
我也提出了错误的struts2的JIRA本- https://issues.apache.org/jira/browse/WW-4241