Acabo de empezar a utilizar la velocidad para un nuevo trabajo y en realidad no me gusta lo que he encontrado ya. En este punto, yo realmente preferiría freemarker =X.
De todos modos, yo estoy tratando de hacer una expresión regular y vi este poco (búsqueda de «expresión regular»), pero eso no es la aplicación que estoy haciendo.

No tengo acceso a el java por lo que la opción de escribir algo personalizado para hacer esto es que no hay (ni siquiera estoy seguro de si eso es posible).

Esto es lo que tengo ahora mismo:

#set ( $envCheck = "(localhost|staging|qa|cms)\.site" )
#set ( $envCheck = $envCheck.matches($gatewayURL) )

pero $envCheck siempre sale como «falso». $gatewayURL se define en la página, así que ese no es el problema.

esto es incluso posible? estaba leyendo que cualquier regexp método que el java de la clase String tiene está disponible en la velocidad de la plantilla.

InformationsquelleAutor hellatan | 2011-05-23

2 Comentarios

  1. 3

    Asumiendo que su $gatewayURL es somethign como este:

    #set ( $gatewayURL = "localhost.site" )

    A continuación:

    #set ( $envCheck = "(localhost|staging|qa|cms)\.site" )
    #set ( $envCheck = $gatewayURL.matches($envCheck) )

    No hay necesidad de máscara de barra diagonal inversa, y usted debe llamar a matches() en gatewayURL, no es una expresión regular.

    Velocidad no tiene su propio regexp aplicación, simplemente se pasa los parámetros que proporcionan a los nativos correspondientes métodos java, eso es todo. Así que tiene bastante completo SDK de Java a tu disposición.

    • es esta una versión específica de la velocidad? Nos estamos quedando 1.4 aquí (un montón de legado de mierda…) me parece que no puede obtener su regexp versión de trabajo. también, después de escribir mi primer comentario, me hicieron saber que el objeto tiene acceso a los métodos java, dependiendo del tipo de objeto
    • Lo siento, no estoy seguro acerca de 1.4, que es demasiado viejo. Hubo algunos cambios drásticos desde entonces…
    • eso es bastante genérico de Velocidad. Se debe trabajar en la versión 1.4. Pero, por supuesto, el JDK debe ser de al menos 1.4. (o lo que sea la versión relevante es que el método de las llamadas que usted está haciendo).
    • no estoy totalmente seguro de lo que la pila está en el trabajo, pero yo sólo sé que hay un MONTÓN de código heredado ya que este sistema fue construido por primera vez en la década del 2000 y en cualquiera de los motivos de no actualizar como nuevos lanzamientos salió.
  2. 2

    Esta respuesta es tarde, pero probablemente todavía como una buena referencia para la Velocidad de los usuarios encontrarse con el mismo problema.

    Utilizamos Velocidad de 1,5 (una tarea demasiado grande para actualizar a 1.7/1.6 como se quiebra muchas plantillas) y se encontró con el mismo problema. La respuesta anterior no funcionaría – juego sin escape (\) resultados en el Léxico de error y con el escape (\\) return false siempre, como creo que es interpretado literalmente. La forma correcta de resolverlo es mediante el uso de comillas simples en lugar de las comillas dobles cuando la definición de la expresión expresión para la Velocidad no se trataría de interpretar la cadena que se supone que es para Java.

    #set ( $envCheck = '(localhost|staging|qa|cms)\.site' )
    #set ( $envCheck = $envCheck.matches($gatewayURL) )
    • lolz. me encanta que la única vs doble cita trucos :). Si yo todavía trabajaba con la velocidad (gracias a dios que no), me gustaría tratar de dar la respuesta, pero no puedo comprobar nada.
    • No hay problema. Después de años de sobrevivir JSP, la Velocidad no es tan malo… 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here