Thymeleaf - 我无法使用 Link th:href 将两个值从 HTML 传递到控制器

Posted

技术标签:

【中文标题】Thymeleaf - 我无法使用 Link th:href 将两个值从 HTML 传递到控制器【英文标题】:Thymeleaf - I can't pass two values from HTML to Controller using Link th:href 【发布时间】:2016-10-03 20:36:50 【问题描述】:

我正在使用 Thymeleaf 和 Spring Boot。 我的 html 中有一个使用 thymeleaf 的链接:

 <a th:href="@/fleetcompany/workorders/proposals/selected/id(id=$proposal.bidID)/id2(id2=$proposal.workID)">SELECT</a>

当我只传递一个值时,它可以工作,但是当我传递两个值时,它没有。它有错误:

  Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "id(id=$proposal.bidID)"

这是我的 MVC 控制器:

@RequestMapping(value="/workorders/proposals/selected/bidID/woNumber", method = RequestMethod.GET)
public String selectProposal(Model model,
        final RedirectAttributes redirectAttributes,
        @PathVariable("bidID") Long bidID,
        @PathVariable("woNumber") Long woNumber)

    String selected = "Selected";
    String notSelected = "Not Selected";
    String orderStatus = "Pending";
    bidServiceInterface.updateSelectedBidStatus(selected, bidID);
    bidServiceInterface.updateNotSelectedBidStatus(notSelected, woNumber);
    woServiceInterface.updateWorkOrderStatus(orderStatus, woNumber);
    return "redirect:/fleetcompany/workorders";

我知道我所有的数据类型都是正确的,因为当我交换两个 id 时它可以工作,但当我同时使用它们时却不行。

【问题讨论】:

当您收到错误消息时,它使用的实际 url 是什么?我还想知道 /selected/1234/1234 时的路径变量是否正在转换为 1234/1234,因此它无法转换为 long。你能试试/selected/1234/workorder/1234吗? 刚刚在一个示例项目中尝试过,两个相邻的路径变量对我来说效果很好。让我觉得应该存在的数字中有一些东西。你能发布它要去的网址吗? @blur0224 我解决了。我不知道我只能用一个初始化器来做。像这样。 选择一个>。感谢您的宝贵时间。 @Lester:你可以把你所做的写下来作为答案,然后接受它,这样未来的人也可以学习。 【参考方案1】:

我解决了。我不知道我必须只用一个初始化器来做。像这样。

<a th:href="@/fleetcompany/workorders/proposals/selected/id/id2(id=$proposal.‌​bidID, id2=$proposal.woNumber)">SELECT</a>.

【讨论】:

以上是关于Thymeleaf - 我无法使用 Link th:href 将两个值从 HTML 传递到控制器的主要内容,如果未能解决你的问题,请参考以下文章

Thymeleaf:无法解析为表达式

使用 <img th:src= "@/images/anabada.jpg" 无法加载 thymeleaf 中的图像

Thymeleaf下拉菜单

Thymeleaf 使用 th:href 的路径变量

如何在 th:if 标记中使用 thymeleaf 有多个条件

如何在 reactJS 中使用 Thymeleaf th:text