Spring MVC Denetleyici yöntemimde GET HTTP İsteğinin parametre değerini nasıl alırım?


87

Bu dönemde, Spring MVC vitrin örneğini (STS dasboard'dan indirilebilir) inceliyorum ve Request Mappingörnekler hakkında bazı basit sorum var :

1) Sayfamda home.jspşu bağlantı var:

        <li>
            <a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a>
        </li>

Bu bağlantıdan görebileceğiniz gibi, "bar" değerini içeren bir "foo" parametresine sahip bir HTTP GET İsteği yapıyorum.

Bu HTTP İsteği, MappingController denetleyici sınıfının aşağıdaki yöntemi tarafından işlenir:

@RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo")
public @ResponseBody String byParameter() {
    return "Mapped by path + method + presence of query parameter! (MappingController)";
}

Bu yöntem GET, "foo" adlı bir parametresi olan HTTP İsteğini (yalnızca tür) yönetir

Bu parametrenin değerini ("bar") alıp my by Parameter metodu içindeki bir değişkene nasıl koyabilirim?

Yanıtlar:


184

Belgelerde açıklandığı gibi , bir @RequestParamek açıklama kullanarak :

public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
    return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
           + foo;
}

3
Net yanıtınız ve belgelere referans için çok teşekkür ederiz
— AndreaNobili

3
Durumda orada, parametrelerin 10 dizi bu 10 kez yapmak zorunda ya thar senaryo için daha iyi bir yol yoktur ne zaman
— Kont

2
@Count: Dokümantasyona verdiğim bağlantıya tıklayın, ardından "Desteklenen yöntem bağımsız değişken türleri" paragrafına kadar biraz yukarı kaydırın ve "Komut veya form nesneleri" hakkındaki bölümü okuyun
— JB Nizet

43

Ayrıca bir URI şablonu da kullanabilirsiniz. İsteğinizi dinlendirici bir URL olarak yapılandırdıysanız Spring, sağlanan değeri url'den ayrıştırabilir.

HTML

<li>
    <a id="byParameter" 
       class="textLink" href="<c:url value="/mapping/parameter/bar />">By path, method,and
           presence of parameter</a>
</li>

Kontrolör

@RequestMapping(value="/mapping/parameter/{foo}", method=RequestMethod.GET)
public @ResponseBody String byParameter(@PathVariable String foo) {
    //Perform logic with foo
    return "Mapped by path + method + presence of query parameter! (MappingController)";
}

Bahar URI Şablon Belgeleri

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.