2014-07-08 12 views
6

Codice primoperché SpEL non supporta la variabile unicode? Come lavorare?

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

Qualche tempo abbiamo solo bisogno di un nome unicode, è più amichevole per la nostra abitudine a modello. Spel è semplice, facile e integrato, non voglio usare un'altra soluzione EL, come posso risolvere questo problema?

EDIT

In org.springframework.expression.spel.standard.Tokenizer#isIdentifier, hanno solo accettano isAlphabetic(ch) || isDigit(ch) || ch == '_' || ch == '$'; alcun supporto unicode, ma identificatore Java permesso unicode, triste.

risposta

0

Puoi hackerarlo - controlla e modifica la fonte come ti serve. Oppure puoi creare un problema, o forgiare il repository, aggiungere il supporto Unicode e inviare una richiesta di pull. Non c'è altro modo. Per quanto riguarda il motivo, mi piacerebbe saperlo anch'io.

+0

Perché meno? Per favore, spiegami, quindi posso fare meglio la prossima volta o magari aggiustare anche questo :) – Czar