2014-07-08 25 views
6

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.

Trả lời

0

Bạn có thể hack nó - kiểm tra và sửa đổi nguồn khi bạn cần. Hoặc bạn có thể tạo ra vấn đề, hoặc ngã ba kho lưu trữ, thêm hỗ trợ Unicode và gửi một yêu cầu kéo. Không có cách nào khác. Tại sao, tôi muốn biết rằng bản thân mình.

+0

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

Các vấn đề liên quan