大家好。 我有简单的存储页面,其中显示数据库中的所有产品。 我将设置为每个唯一名称,以更改产品数量。 当我想在 Java 方法中捕获这个值时,它返回 null。 你能帮我做什么才能正确捕获此文本输入中的值吗?
Controller :
@Controller
public class StoragePageController extends HttpServlet {
@GET
@RequestMapping(value = "/storage/subamount/{id}")
public String substractTheAmountValue(@PathVariable("id") int id, Model model, HttpServletRequest request) {
String amount_req = request.getParameter("amount_sub_" + id);
System.out.println(amount_req);
return null;
}
}
JSP 片段:
<c:set var="licznik" value="${recordStartCounter }" />
<div align="center">
<table width="1000" border="0" cellpadding="6" cellspacing="2">
<c:forEach var="u" items="${productList }">
<c:set var="licznik" value="${licznik+1}" />
<tr onmouseover="changeTrBg(this)" onmouseout="defaultTrBg(this)">
<td align="right"><c:out value="${licznik }" /></td>
<td align="left"><c:out value="${u.description }" /></td>
<td align="left"><c:out value="${u.amount }" /></td>
<td align="center"><input type="text" name="amount_sub_${licznik}" id="amount_sub_${licznik}"></td>
<td align="center"><input type="button" value="Substract the value" onclick="window.location.href='${pageContext.request.contextPath}/storage/subamount/${licznik}'"/></td>
</tr>
</c:forEach>
</table>
最佳答案
鉴于您的 UI 正在将数据发布到 API/ Controller (假设您使用的是最新版本的 Spring Boot),您应该拥有如下所示的 API Controller 。您有一个 @Get
映射,它不接受正文中的请求负载。
@RestController
public class StoragePageController {
@PostMapping(value = "/storage/subamount/{id}", produces = {"application/json"})
public String substractTheAmountValue(@PathVariable("id") int id, Model model) {
String amount_req = id;
System.out.println(amount_req);
return null;
}
}
关于java - JSP 输入值到 Java 方法 -> HttpServletRequest 给出 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61010534/