当前位置: 首页 > 知识库问答 >
问题:

当语言为阿拉伯语时,不能识别负整数请求参数,其他语言如英语、德语、法语和中文都可以

袁赞
2023-03-14

我有一个struts2 Web应用程序

当我将语言更改为阿拉伯语时,所有查询字符串URL都会给出不确定的结果。我想这是因为被认为是某个变量名,然后它没有被Struts2正确地映射到目标操作。

虽然internet上提供的示例似乎工作得很好,所以我想这与我的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就会非常好地工作,并返回所需的数据,但一旦语言发生更改,就不会调用绑定在url上的操作,而是调用其他一些随机操作。

[更新]

不调用随机操作。实际上,参数没有被映射,因此,由于操作中的验证检查,操作返回输入。但是,当语言是英语时,相同的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异常错误设置表达式,rest数字似乎可以正常工作。

[更新4]

我试着使用更多的语言,发现它不仅仅适用于阿拉伯语。我猜这和他们的左右排列方式有关系。

我还编写了一个小的示例应用程序,它演示了只有当语言为阿拉伯语时,表单提交才会出错&对于其他任何语言(英语、汉语、法语),它都可以正常工作。

我还在struts2 jira上为此提交了一个bug-https://issues.apache.org/jira/browse/ww-4241

共有1个答案

蒋波光
2023-03-14

其实很简单:阿拉伯语是从右到左的文字。因此,您的-1实际上是1-(和一个字符串),您需要输入1-来发布负整数。

 类似资料:
  • 我有一个代码,以前是有效的,但由于某种原因,它突然停止了工作,我正在尝试用希伯来语进行语音识别,但似乎几天前它才开始用英语进行语音识别。 这是我的代码 test\u voice\u recognitiona是我的RecognitionListener类名的名称。 代码运行良好,但出于某种原因,它一直在用英语听。 我做错了什么? 顺便说一句,我用谷歌对话框尝试了更简单的代码,它很管用。 也许是Goo

  • 问题内容: 我想将 包含英文数字的a转换为阿拉伯数字,所以我将其转换为 输出 还有另一种更有效的方法吗? 问题答案: 这使字符串长度为3036的版本比原来的版本提高5倍。这还会检查以确保您只更改数字。如果不执行if / else检查,则速度大约是6倍。 如果字符不正确/放错了位置,请原谅我。我不得不从另一个来源找到其中一些。

  • 我有一个来自数据库的对象,这个对象有属性创建日期,它是日期-时间格式,我想将此属性的语言从英语更改为阿拉伯语,格式为“j-F,Y” 当我使用这个代码的错误是 在非对象上调用成员函数createFromDate() 函数setLocale('ar')返回空值

  • Adobe 亚洲语言书写器 借助 Adobe 亚洲语言书写器,您可以使用中东和南亚语言创建内容。您可以键入或混合键入阿拉伯语、希伯来语、英语和其他语言。 您可以在“段落”面板菜单(窗口 > 段落 > 面板菜单)中的可用书写器之间进行选择。例如,您可以使用中东和南亚语言单行书写器或中东和南亚语言逐行书写器。 有关 Illustrator 中支持的其他亚洲语言的更多信息,请参阅适用于亚洲语言文字的书写

  • 启用中东语言功能 若要在 Photoshop 界面中显示中东文字选项,请执行以下操作: 选取“编辑”>“首选项”>“文字”(Windows) 或“Photoshop”>“首选项”>“文字”(Mac OS)。 在“选取文本引擎选项”部分中,选取“中东”。 单击“确定”,并重新启动 Photoshop。 选取“文字”>“语言选项”>“中东语言功能”。 文本方向 要创建阿拉伯语和希伯来语内容,您可以将默

  • 如何在静态编程语言中将波斯语/阿拉伯语数字转换为英语?我在java中看到过类似的问题,但它不符合我的要求。当我在使用波斯本地化数字的设备中获得日期时,波斯和服务器不能将此字符串转换为日期时间。这里是我在波斯本地化设备中收到的日期: "۲۰۲۰/۰۸/۲۱" 这些是波斯/阿拉伯数字 (۰ - 我需要在科特林玩一玩来表演这个。