我已经用一些标签创建了页面* .ftl,并希望所有这些都与我的特定控制器一起工作。
我发现在<#list elmas set>中写的代码无法获得控制器
这有效
<div>
<form action="/deckStatusDel" method="post">
<input type="text" name="deckstatusid" value="${deckstatus1}" />
<input type="hidden" value="${deck.id}" name="deckId">
<input type="hidden" name="_csrf" value="${_csrf.token}" />
<button type="submit">Delete status</button>
</form>
</div>
事实并非如此
<#list deck_statuses as deck_status>
<div>
<form action="/deckStatusDel" method="post">
<input type="text" value="${deck_status.id}" name="deckstatusid">
<span>${deck_status.status}</span>
<button type="submit">Delete status</button>
</form>
</div>
<#else>
empty
</#list>
控制器代码
@PostMapping("/deckStatusDel")
public String deckStatusDelete(
@RequestParam Long deckstatusid,
@RequestParam("deckId") Deck deck
) {
deckStatusesRepo.deleteById(deckstatusid);
return "redirect:/deck/"+deck.getId();
}
列表中的代码是获取并发送正确的ID,但我得到403错误。为什么?
在第二种形式中,您缺少用于身份验证的csrf令牌
<input type="hidden" name="_csrf" value="${_csrf.token}" />