Cómo obtener parámetros de cadena de consulta en java juego de marco?

Yo soy muy nuevo en java juego de marco. He configurado todas las rutas normales como /algo/:somthingValue y todos los demás. Ahora quiero crear la ruta acepta los parámetros de la consulta como

/algo?x=10&y=20&z=30

Aquí quiero obtener todos los parámetros después de «?» como clave==>valor par.

InformationsquelleAutor Sadik | 2013-04-09

5 Kommentare

  1. 35

    Puede alambre en su consulta de parámetros en el archivo de rutas:

    http://www.playframework.com/documentation/2.0.4/JavaRouting en la sección «Parámetros con valores por defecto»

    O usted puede pedir para ellos en su Acción:

    public class Application extends Controller {
    
        public static Result index() {
            final Set<Map.Entry<String,String[]>> entries = request().queryString().entrySet();
            for (Map.Entry<String,String[]> entry : entries) {
                final String key = entry.getKey();
                final String value = Arrays.toString(entry.getValue());
                Logger.debug(key + " " + value);
            }
            Logger.debug(request().getQueryString("a"));
            Logger.debug(request().getQueryString("b"));
            Logger.debug(request().getQueryString("c"));
            return ok(index.render("Your new application is ready."));
        }
    }

    Por ejemplo el http://localhost:9000/?a=1&b=2&c=3&c=4 imprime en la consola:

    [debug] application - a [1]
    [debug] application - b [2]
    [debug] application - c [3, 4]
    [debug] application - 1
    [debug] application - 2
    [debug] application - 3

    Nota que c es de dos veces en la dirección url.

    • Yo no soy capaz de ver getQueryString() método de solicitud(). es porque estoy usando play 2.0 y está usando 2.0.4 ?
    • Tienes razón, playframework.com/documentation/api/2.0/java/play/mvc/… no contiene getQueryString() pero de solicitud().queryString() puede darle todo lo que necesita.
    • Muchas gracias hombre. me puede sugerir algunos buenos tutoriales en él? Excepto que de la documentación.
    • Muy bien, entonces por favor marque mi respuesta aceptada. Una lista de Reproducir tutoriales se pueden encontrar en groups.google.com/forum/?fromgroups=#!tema/play-marco/…
    • Una cuestión más, como jugar 2.0 no ha getQueryString() método y Matrices.toString(de entrada.getValue()) devuelve el valor con las teclas [] ¿y si no quiero que los [] ? Sólo quiero valor como estamos obteniendo con getQueryString() método. ¿Tengo que cambiar a la versión más reciente del Juego ?
    • He resuelto, y que era tonto error. Acabo de hacer la entrada.getValue()[0]

  2. 17

    En Juego 2.5.x, se hace directamente en conf/routes, donde uno puede poner valores por defecto:

    # Pagination links, like /clients?page=3
    GET   /clients              controllers.Clients.list(page: Int ?= 1)

    En su caso (cuando el uso de cadenas)

    GET   /something            controllers.Somethings.show(x ?= "0", y ?= "0", z ?= "0")

    Cuando se usa tipado fuerte:

    GET   /something            controllers.Somethings.show(x: Int ?= 0, y: Int ?= 0, z: Int ?= 0)

    Ver: https://www.playframework.com/documentation/2.5.x/JavaRouting#Parameters-with-default-values para una explicación más larga.

  3. 9

    Usted puede obtener todos los parámetros de cadena de consulta como un Mapa:

    Controller.request().queryString()

    Este método retorna un Map<String, String[]> objeto.

  4. 0

    En Java/Play 1.x se obtiene con:

        Request request = Request.current();
        String arg1 = request.params.get("arg1");
    
        if (arg1 != null) {
            System.out.println("-----> arg1: " + arg1);
        } 

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea