gpt4 book ai didi

java - 如何使用 Spring MVC 将参数(标识对象的主键)从 View 传递到 Controller ?

转载 作者:行者123 更新时间:2023-12-02 04:24:51 25 4
gpt4 key购买 nike

我对 Spring MVC 还很陌生,对于如何正确创建 View 页面的链接(必须由 Controller 类中定义的方法来处理)有以下疑问。

所以我有以下情况:

在 View 中我使用模型对象名称

<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 是由定义到 Controller 类中的此方法处理的资源:

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

return "prospettoRendicontazione";
}

好的,这是正确的调用。

现在我的问题是,当用户单击链接时,我不必处理简单的visualizzaProspetto,但我还必须传递一个表示定义到我的 Twp1007Progetto 模型对象实例中的 prgPro 字段的值(${progetto.prgPro} 值),因为它是数据库中单击的对象。

那么,做这件事的最佳方法是什么?我知道使用 Spring 我可以传递参数或路径变量,但我真的不知道如何正确处理这种情况。

Tnx

最佳答案

带有请求参数:

<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) {
...
}
<小时/>

您可能需要URL encode codPro 值,具体取决于它是否可以包含保留字符。

关于java - 如何使用 Spring MVC 将参数(标识对象的主键)从 View 传递到 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com