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.