struts2 Web アプリケーションがあります。
言語をアラビア語に変更すると、すべてのクエリ文字列 URL で特定の結果が得られません。これ?
は、何らかの変数名と見なされ、Struts2 によってターゲット アクションに適切にマップされていないためだと思います。
インターネットにある例はうまくいくようですが、これは私のストラット構成に関係していると思います。
<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" />
言語が英語である限り、url likehttp://localhost:8084/myaction?id=4
は完全に正常に機能し、必要なデータを返しますが、言語が変更されると、その URL バインド アクションは呼び出されず、代わりに他のランダム アクションが呼び出されます。
[アップデート]
ランダム アクションは呼び出されません。実際には、パラメーターはマップされないため、アクションの検証チェックにより、アクションは INPUT を返します。ただし、言語が英語の場合、同じ URL が機能します。つまり、パラメーターが完全にマップされ、成功が返されます。
[更新 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>
上記は、私が使用しているインターセプター スタックです。
[更新 3]
http://localhost:8084/search?id=-1&...
値を持つパラメーターのみ-1
が OGNL 例外を与えていますError Setting Expression
。残りの番号は正常に機能しているようです。
[更新 4]
より多くの言語を使用してみましたが、アラビア語だけでは機能しないことがわかりました。左右の配置が関係していると思います。
また、言語がアラビア語の場合にのみ、フォームの送信でエラーが発生し、他の言語 (英語、中国語、フランス語) で正常に動作することを示す小さなサンプル アプリケーションを作成することもできました。
これについても struts2 jira にバグを報告しました - https://issues.apache.org/jira/browse/WW-4241