2014-07-08 29 views
6

Code pierwszydlaczego Spel nie obsługuje zmiennej Unicode? Jak obejść?

@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"); 
} 

Jakiś czas musimy tylko nazwę unicode, jest bardziej przyjazne dla naszego zwyczaju w szablonie. Spel jest prosty, łatwy i wbudowany, nie chcę używać innego rozwiązania EL, jak mogę rozwiązać ten problem?

EDIT

W org.springframework.expression.spel.standard.Tokenizer#isIdentifier, tylko zaakceptować isAlphabetic(ch) || isDigit(ch) || ch == '_' || ch == '$'; żadnego wsparcia dla Unicode, ale identyfikator java dozwolone Unicode, smutny.

Odpowiedz

0

Możesz to zhakować - sprawdź i zmodyfikuj źródło zgodnie z potrzebami. Możesz też utworzyć problem lub rozwidlić repozytorium, dodać obsługę Unicode i przesłać żądanie pobrania. Nie ma innego wyjścia. Co do tego, chciałbym to wiedzieć.

+0

Dlaczego minus? Wyjaśnij, więc następnym razem lepiej, a może nawet poprawię to :) – Czar