SpEL 无法处理“”?
我是法国人,所以我在代码中添加了一些 é è ê ô û 。 (而且我英语说得不太好)。
我在类Formulaires
中有一个类似的方法:
public static Formulaire exposé()
在配置spring xml文件中,我尝试:
<entry
key="intro"
value="#{T(com.myproject.Formulaires).exposé()}"/>
但是Spring说:
Caused by: java.lang.IllegalStateException: Cannot handle (233) 'é'
at org.springframework.expression.spel.standard.Tokenizer.process(Tokenizer.java:193)
at org.springframework.expression.spel.standard.Tokenizer.<init>(Tokenizer.java:47)
at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:110)
at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:56)
at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:1)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpressions(TemplateAwareExpressionParser.java:128)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseTemplate(TemplateAwareExpressionParser.java:74)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:64)
at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:119)
... 47 more
如果我输入e而不是é,一切都很好。
关于口音有一些 SpEL 限制吗?
我用的是spring 3.0.5。
谢谢。
I'm a french so I put some é è ê ô û in my code. (and I don't speek english very well).
I've a method like that in a class Formulaires
:
public static Formulaire exposé()
And in a config spring xml file, I try :
<entry
key="intro"
value="#{T(com.myproject.Formulaires).exposé()}"/>
But Spring says :
Caused by: java.lang.IllegalStateException: Cannot handle (233) 'é'
at org.springframework.expression.spel.standard.Tokenizer.process(Tokenizer.java:193)
at org.springframework.expression.spel.standard.Tokenizer.<init>(Tokenizer.java:47)
at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:110)
at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:56)
at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:1)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpressions(TemplateAwareExpressionParser.java:128)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseTemplate(TemplateAwareExpressionParser.java:74)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:64)
at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:119)
... 47 more
If I put e and not é all is good.
Is there some SpEL limit about accents ?
I use spring 3.0.5.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
基本 UTF-8 字符编码中不存在重音字符,Spring XML 文件可能使用它。正如错误所述,解析器无法处理重音字符。
您无法轻松解决此问题。重音字符也会在其他编程领域带来问题。我认为最好防止使用它们。
Accented characters do not exist in a basic UTF-8 character encoding and the Spring XML files probably use that. As the error says, the parser can't handle accented characters.
There's nothing that you can do to easily solve this problem. Accented characters will give problems in other areas of programming too. I think it would be best to prevent using them.
这里还有更多内容。 Tokenizer 中的下面的代码决定它是否是字母字符
您的字符 é <=255 但 flags[ch] 由下面的静态块初始化
因此只能考虑 az 或 AZ ..
Here's more to it . The code below in Tokenizer decides if it's an alphabetic character
Your character é is <=255 but the flags[ch] is initialized by the static block below
Hence only a-z or A-Z can be considered ..