Velocity-Template - reguläre Ausdrücke
Ich gerade angefangen mit Geschwindigkeit für einen neuen job und ich mag es wirklich nicht, was ich gefunden habe schon. An dieser Stelle würde ich eigentlich lieber freemarker =X.
Wie auch immer, ich versuche zu tun, einen regulären Ausdruck und ich sah dieses kleine bisschen (Suche nach "regular expression"), aber das ist nicht ganz die Implementierung, die ich mache.
Habe ich keinen Zugriff auf die java so, dass die Möglichkeit, etwas zu schreiben benutzerdefinierte zu tun, das Zeug ist nicht da (ich bin mir auch nicht sicher, ob das möglich ist).
Dies ist, was ich jetzt haben:
#set ( $envCheck = "(localhost|staging|qa|cms)\\.site" )
#set ( $envCheck = $envCheck.matches($gatewayURL) )
aber $envCheck
immer nur als "falsch". $gatewayURL
ist definiert auf der Seite, so dass ist nicht das Problem.
ist das überhaupt möglich? ich habe gelesen, dass jede regexp-Methode, die die java-String-Klasse verfügbar ist, in die das velocity-template.
InformationsquelleAutor hellatan | 2011-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, Ihr
$gatewayURL
somethign wie diese:Dann:
Brauchen keine Maske backslash, und Sie sollten den Aufruf
matches()
aufgatewayURL
, nicht regulären Ausdrucks.Geschwindigkeit nicht über seine eigenen regexp Umsetzung, es passt einfach Parameter, die Sie an entsprechende native java-Methoden, das ist alles. So haben Sie so ziemlich alle Java-SDK zur Verfügung.
Sorry, ich bin nicht sicher, 1.4, es ist zu alt. Es gab einige drastische Veränderungen seitdem...
das ist ziemlich allgemein Geschwindigkeit. Es sollte in 1.4. Aber natürlich, das JDK muss mindestens 1.4. (oder was auch immer die jeweilige version ist für die Methode Aufrufe, die Sie).
ich bin mir nicht ganz sicher, was der stack ist bei der Arbeit, aber ich weiß, es gibt eine MENGE von legacy-code, da dieses system wurde zuerst gebaut in den frühen 2000er Jahren, und für welche Gründe, die Sie nicht aktualisiert haben, neue releases raus kam.
InformationsquelleAutor serg
Diese Antwort ist so spät, aber wahrscheinlich immer noch gut als Referenz für die Geschwindigkeit Benutzer, die Begegnung mit dem gleichen Problem.
Wir verwenden Velocity 1.5 (zu große Aufgabe, um ein upgrade auf 1.7/1.6 als Sie brach zu viele Vorlagen) und hatte das gleiche Problem. Die Antwort oben nicht funktionieren würde - backlash-ohne Escapezeichen (\) Ergebnisse im Lexikalischen Fehler und mit escape (\\) return false immer, wie ich denke, es wird buchstäblich interpretiert. Der richtige Weg, es zu lösen, ist durch die Verwendung von einfachen Anführungszeichen statt der doppelten Anführungszeichen bei der Definition des regex-Ausdruck so Geschwindigkeit würde nicht versuchen, zu interpretieren, den string, das bedeutete für Java.
Kein problem. Nach Jahren der überlebenden JSP, Velocity ist nicht so schlimm... 🙂
InformationsquelleAutor dancnfoo