Mã đầu tiênlý do tại sao Spel không hỗ trợ biến unicode? Làm thế nào để làm việc xung quanh?
@Test
public void tryUnicode()
{
SpelExpressionParser parser = new SpelExpressionParser();
Object rootObject = new Object()
{
public String getName()
{
return "wener";
}
public String get名字()
{
return getName();
}
};
// ok
assert parser.parseExpression("name").getValue(rootObject).equals("wener");
// not ok
assert parser.parseExpression("名字").getValue(rootObject).equals("wener");
}
Một thời gian chúng ta chỉ cần một tên unicode, nó là thân thiện hơn để tùy chỉnh của chúng tôi trong mẫu. Spel rất đơn giản, dễ dàng và tích hợp, tôi không muốn sử dụng giải pháp EL khác, làm thế nào tôi có thể giải quyết vấn đề này?
EDIT
Trong org.springframework.expression.spel.standard.Tokenizer#isIdentifier
, họ chỉ chấp nhận isAlphabetic(ch) || isDigit(ch) || ch == '_' || ch == '$';
không hỗ trợ unicode, nhưng nhận dạng java phép unicode, buồn.
Lý do trừ đi? Xin giải thích, vì vậy tôi có thể làm tốt hơn thời gian tới hoặc thậm chí có thể sửa lỗi này :) – Czar