Query Parameters
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 kyselyparametrejaLocation
-objektista, joka on saatavillaDidEnterEvent
:istä.ParametersBag
mahdollistaa tiettyjen kyselyparametrien noutamisenget()
-metodin avulla, joka palauttaaOptional<String>
. Voit määrittää oletusarvon käyttämälläorElse()
, jos parametria ei ole olemassa.
ParametersBag
-getteritParametersBag
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 arvonString
-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 arvonInteger
-muodossa.getFloat(String key)
: Parsii ja palauttaa parametrin arvonFloat
-muodossa.getDouble(String key)
: Parsii ja palauttaa parametrin arvonDouble
-muodossa.getBoolean(String key)
: Parsii ja palauttaa parametrin arvonBoolean
-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ätcategory
-avaimeen, palauttaen ne listana.
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.