Estoy tratando de averiguar cómo hacer una redirección dentro de un controlador de acción en el Juego (2.0) usando Scala.

La redirección usando

Redirect(routes.Application.index)

funciona bien.

Lo que no puedo entender de los docs, API, o en Google es cómo agregar parámetros a la llamada.

Vengo de Grails donde esto puede hacerse fácilmente de la siguiente manera:

acción de redirección: «índice», params: [«clave»: «valor»]
.

La única manera que he encontrado es para llamar a Redirigir el uso de una cadena de dirección url y una cadena de consulta, que parece ser complicado.

Básicamente me gustaría hacer uso de Redirección(Llamada) de alguna manera, pero no sé cómo crear el objeto de Llamada utilizando la inversa de enrutamiento.

Que me estoy perdiendo algo/no el concepto en Juego/Scala?

Gracias de Antemano!

OriginalEl autor pchronz | 2012-04-04

2 Comentarios

  1. 16

    Ellou’

    Una ruta es sólo una función, por lo que puede pasar argumentos como de costumbre:

    //Redirect to /hello/Bob
    def helloBob = Action {
        Redirect(routes.Application.hello("Bob"))    
    }

    Este fragmento viene de http://www.playframework.org/documentation/2.0/ScalaRouting (en la parte inferior)

    Gracias! En realidad, he intentado esto en el primer lugar, pero el compilador se quejó, que he entrado en demasiados argumentos. El problema era: la acción tiene un Tiempo, pero en el Enrutamiento he definido, que no debe ser un valor predeterminado para la acción. Tuve que quitar eso. Así que ahora tengo que llamar a cualquiera de índice(Ninguno) o el índice(Algunos(foo)). Viniendo de Grails esto parece realmente tedioso.
    +1 Esto es lo que el tipo de seguro Url. Quiero jugar vendería más de lo que son.
    +1, así como para la seguridad de tipos, @DanBurton, gracias por ediciones
    Ha cambiado esto en los últimos jugar? Me parece que no puede encontrar/rutas de importación (I obtener el valor de rutas no está definido).

    OriginalEl autor biesior

  2. 0

    También puede evitar la creación de otra función para este en el controlador. En su ruta de configuración, usted puede simplemente añadir algo como esto:

      GET  /google  @controllers.Default.redirect(to = "http://google.com")
    espero que ayude
    Muuuuch mejor!
    Esto no parece funcionar. Puedo obtener No such file or directory

    OriginalEl autor Yawo Guillaume Kpotufe

Dejar respuesta

Please enter your comment!
Please enter your name here