java - JSP 输入值到 Java 方法 -> HttpServletRequest 给出 NULL 值

标签 java spring-boot jsp servlets

大家好。 我有简单的存储页面,其中显示数据库中的所有产品。 我将设置为每个唯一名称,以更改产品数量。 当我想在 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/

相关文章:

javax.net.ssl.SSLPeerUnverifiedException : peer not authenticated after upgrading Spring Boot from 2. 1.0 到 2.2.0.M3

java - Spring MVC - 传递的 http 请求参数与相同的字符串值不匹配,为什么?

jsp - 亮点@Renderer.LayoutPath

java - 我无法从 Firebase 检索我的数据

java - Spring Boot 应用程序不使用 java -jar 运行

java - Windows 上的 Docker 引擎会忽略 Spring Boot Web 应用程序的 server.port 属性

java - execAndWait 拦截器不支持验证

java - 在不重构的情况下使用 mockito 测试本地作用域对象

java - ORMlite 注释中 native SQL 函数的使用

java - 使用迭代器在 HashMap 中搜索特定值