Un modo per scoprire cose come questa è guardare da soli. Questo è un esempio per Eclipse, ma dovrebbe funzionare in modo simile per altri IDE:
Prima di tutto, assicurarsi di disporre delle sorgenti delle librerie di molle che si stanno utilizzando. Questo è più semplice se si utilizza Maven, using the maven-eclipse-plugin o m2eclipse.
Quindi, in Eclipse selezionare Navigate -> Open Type...
. Inserisci il tipo che stai cercando (qualcosa come RequestMa*
dovrebbe fare per i dattilografi pigri come me). Inserisci/OK. Ora fai clic con il tasto destro del mouse sul nome della classe nel file sorgente e seleziona References -> Project
. Nella vista di ricerca, verranno visualizzati tutti gli usi di questa classe o annotazione.
Uno di loro è DefaultAnnotationHandlerMapping.determineUrlsForHandlerMethods(Class, boolean), dove questo frammento di codice vi dirà che il linguaggio di espressione non viene valutata:
ReflectionUtils.doWithMethods(currentHandlerType, new ReflectionUtils.MethodCallback() {
public void doWith(Method method) {
RequestMapping mapping = AnnotationUtils.findAnnotation(
method, RequestMapping.class);
if (mapping != null) {
String[] mappedPatterns = mapping.value();
if (mappedPatterns.length > 0) {
for (String mappedPattern : mappedPatterns) {
// this is where Expression Language would be parsed
// but it isn't, as you can see
if (!hasTypeLevelMapping && !mappedPattern.startsWith("/")) {
mappedPattern = "/" + mappedPattern;
}
addUrlsForPath(urls, mappedPattern);
}
}
else if (hasTypeLevelMapping) {
urls.add(null);
}
}
}
}, ReflectionUtils.USER_DECLARED_METHODS);
Ricordate, si chiama Open Source. Non ha senso usare il software Open Source se non provi a capire cosa stai usando.
fonte
2010-09-21 07:24:06
Per chiarire, l'espressione spel funziona bene con l'annotazione @value per impostare il valore di "RESOURCE_FOLDER", ma non funziona nel @ RequestMapping annotation – chrismarx