Siirry pääsisältöön

Kyselyparametrit

Avaa ChatGPT:ssä

Kyselyparametrit mahdollistavat lisätietojen siirtämisen URL-osoitteiden kautta, käyttämällä muotoa ?key1=value1&key2=value2. Kun reittiparametreja käytetään vaadittavan tiedon siirtämiseen URL-polussa, kyselyparametrit tarjoavat joustavan mekanismin vapaaehtoisten tai lisätietojen siirtämiseen. Ne ovat erityisen hyödyllisiä sisällön suodattamisessa, lajittelussa tai käsitellessä useita arvoja samalla avaimella.

Kyselyparametrien yleiskatsaus​

Kyselyparametrit webforJ:ssä noudattavat tyypillistä URL-käytäntöä: avain-arvo-parit erotetaan =-merkillä ja yhdistetään &-merkillä. Ne liitetään URL-osoitteeseen kysymysmerkin (?) jälkeen ja tarjoavat joustavan tavan siirtää vaihtoehtoisia tietoja, kuten suodatus- tai lajittelutoiveita.

Esimerkiksi:

/products?category=electronics&sort=price

Kyselyparametrien noutaminen​

Kyselyparametreja käytetään ParametersBag-objektin kautta. Noutaaksesi kyselyparametreja, käytä getQueryParameters()-metodia Location-objektista.

Näin voit noutaa kyselyparametreja URL-osoitteesta näkymässä:

@Route(value = "products")
public class ProductView extends Composite<Div> implements DidEnterObserver {

@Override
public void onDidEnter(DidEnterEvent event, ParametersBag parameters) {
ParametersBag queryParameters = event.getLocation().getQueryParameters();

String category = queryParameters.get("category").orElse("all");
String sort = queryParameters.get("sort").orElse("default");

console().log("Kategoria: " + category);
console().log("Lajittelu: " + sort);
}
}

Tässä esimerkissä:

  • onDidEnter-metodi noutaa kyselyparametreja Location-objektista, joka on saatavilla DidEnterEvent:istä.
  • ParametersBag mahdollistaa tiettyjen kyselyparametrien noutamisen get()-metodin avulla, joka palauttaa Optional<String>. Voit määrittää oletusarvon käyttämällä orElse(), jos parametria ei ole olemassa.
ParametersBag-getterit

ParametersBag tarjoaa useita getter-variantteja, jotka auttavat kyselyparametrien arvojen muuntamisessa tiettyihin tyyppeihin ja niiden suodattamisessa. Seuraavassa on täydellinen lista saatavilla olevista gettereistä:

  • get(String key): Noutaa parametrin arvon String-muodossa.
  • getAlpha(String key): Palauttaa vain aakkoselliset merkit parametrin arvosta.
  • getAlnum(String key): Palauttaa vain alfanumeeriset merkit parametrin arvosta.
  • getDigits(String key): Palauttaa vain numeeriset numerot parametrin arvosta.
  • getInt(String key): Parsii ja palauttaa parametrin arvon Integer-muodossa.
  • getFloat(String key): Parsii ja palauttaa parametrin arvon Float-muodossa.
  • getDouble(String key): Parsii ja palauttaa parametrin arvon Double-muodossa.
  • getBoolean(String key): Parsii ja palauttaa parametrin arvon Boolean-muodossa.

Nämä metodit auttavat varmistamaan, että arvot on muotoiltu ja muunnettu oikein, jolloin vältetään manuaalinen analysointi tai validointi.

Useiden arvojen käsittely kyselyparametrille​

Joskus kyselyparametrilla voi olla useita arvoja samalla avaimella, kuten seuraavassa esimerkissä:

/products?category=electronics,appliances&sort=price

ParametersBag tarjoaa menetelmän tämän käsittelemiseen noutamalla arvot listana:

@Route(value = "products")
public class ProductView extends Composite<Div> implements DidEnterObserver {

@Override
public void onDidEnter(DidEnterEvent event, ParametersBag parameters) {
ParametersBag queryParameters = event.getLocation().getQueryParameters();

List<String> categories = queryParameters.getList("category").orElse(List.of("all"));
String sort = queryParameters.get("sort").orElse("default");

console().log("Kategoriat: " + categories);
console().log("Lajittelu: " + sort);
}
}

Tässä esimerkissä:

  • getList("category") noutaa kaikki arvot, jotka liittyvät category-avaimeen, palauttaen ne listana.
Useiden arvojen erotin

Oletuksena getList()-metodi käyttää pilkkua (,) erottimena. Voit mukauttaa erotinta välittämällä eri merkin tai säännöllisen lausekkeen toisen parametrina getList(String key, String regex)-metodille.

Kyselyparametrien käyttötapaukset​

  • Sisällön suodattaminen: Kyselyparametreja käytetään usein suodattimien, kuten kategorioiden tai hakusanageneraattoreiden, soveltamiseen.
  • Tietojen lajittelu: Voit siirtää lajittelutoiveita kyselyparametrien kautta, kuten lajittelu hinnan, arvostelun tai päivämäärän mukaan.
  • Valinnaisten parametrien käsittely: Kun sinun on siirrettävä tietoa, joka ei ole osa vaadittua reittirakennetta, kyselyparametrit tarjoavat joustavuutta.
  • Useiden arvojen siirtäminen: Kyselyparametrit mahdollistavat useiden arvojen lähettämisen yhdelle avaimelle, mikä on hyödyllistä, kun käyttäjät valitsevat useita vaihtoehtoja, kuten tuotekategorioita tai suodattimia.