簡體   English   中英

如何使用Spring MVC將視圖中的參數(標識對象的入門鍵)傳遞給控制器​​?

[英]How to pass a parameter (that identify the primery key of an object) from the view to a controller using Spring MVC?

我在Spring MVC中還很陌生,對於如何正確地創建視圖頁面中的鏈接(必須由定義在控制器類中的方法來處理),我存在以下疑問。

所以我有以下情況:

進入視圖,我使用模型對象名稱

<c:forEach items="${scuola.twp1007Progettos}" var="progetto" varStatus="itemProgetto">

    <!-- Visualizza il progetto solo se è un progetto PNSD: -->
    <c:if test="${progetto.flgTipPrg == 'P'}">
        <div class="group-item">
            <a href="visualizzaProspetto">
                <img src="<c:url value="resources/img/icons/projects/PNSD.png" />">
            </a>

            <div>
                <h4><a href="visualizzaProspetto">${progetto.codPro}</a></h4>
                <p>${progetto.twp1009Tipostaprogetto.desTipSta}</p>

            </div>
        </div>
    </c:if>

</c:forEach>

因此,如您在前面的代碼片段中所看到的,我有一個progetto變量,它是一個名為Twp1007Progetto的模型類的實例。 該模型類包含一些我在先前的代碼片段中正確使用的字段(例如$ {progetto.codPro} )。

好的,直到現在我都沒問題,並且可以正確訪問progetto變量的先前屬性。

在前面的代碼片段中,我也有此鏈接:

<a href="visualizzaProspetto">

其中visualizzaProspetto是由定義在控制器類中的此方法處理的資源:

@RequestMapping(value = "/visualizzaProspetto", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
    .....................................................
    .....................................................
    DO SOMETHING
    .....................................................
    .....................................................

    return "prospettoRendicontazione";
}

好的,這是正確的名稱。

現在我的問題是,當 鏈接是由用戶單擊的,我不必處理簡單的visualizzaProspetto,但我還必須將一個表示prgPro字段值的參數傳遞到我的Twp1007Progetto模型對象實例( $ {progetto.prgPro}值)中,因為它是數據庫上單擊的對象的主鍵。

那么,做這件事的最好方法是什么? 我知道使用Spring可以傳遞參數或路徑變量,但我真的不知道如何正確處理這種情況。

特納克斯

帶有請求參數:

<a href="visualizzaProspetto?codPro=${progetto.codPro}">
@RequestMapping(value = "/visualizzaProspetto", method = RequestMethod.GET)
public String home(@RequestParam String codPro, Locale locale, Model model) {
    ...
}

或使用路徑變量:

<a href="visualizzaProspetto/${progetto.codPro}">
@RequestMapping(value = "/visualizzaProspetto/{codPro}", method = RequestMethod.GET)
public String home(@PathVariable String codPro, Locale locale, Model model) {
    ...
}

您可能需要 codPro值進行URL編碼 ,具體取決於它是否可以包含保留的字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM