2017-05-22 44 views
0

我想通過使用Spring表達式語言來解析表達式。使用連字符時,Spring表達式語言(SpEL)不起作用

if myVariable將值設置爲「first-name」(帶連字符的值),然後得到class.org.springframework.expression.spel.SpelParseException

ExpressionParser parser = new SpelExpressionParser(); 
String parsedDynamicVariablesValue = parser.parseExpression("#" + myVariable).getValue(stdContext, String.class); 

如何解決連字符問題?

參考使用:
Spring Expression Language (SpEL)

+0

你期望什麼「'#」減去'name'「是? – Andreas

+0

first-name是myVariable的變量內容/值,它將在運行時設置。 –

+0

但是在*表達式*中,你有像'+','''','''''''等運算符。看到第二個?減號,又名減法運算符,又名破折號,又名連字符。這就是爲什麼連字符不是一個有效的名稱字符,因爲它不是連字符,它是一個負號,這意味着它的每一邊都是要減去的值,就像我之前的評論所說的那樣。 – Andreas

回答

1

它不工作的方式,你正在試圖解析#first-name - Java一樣,你不能在變量名連字符。

相關問題