Spring MVC - 从表单发送数据时不调用 POST 方法 -> 控制器 -> db

问题描述 投票:0回答:0
  • 在controller中通过HttpServletRequest接收变量到 填充一个对象并插入到 db
  • 之前也尝试过 @RequestParam 和 HttpSession 似乎无法触发 post 方法,或者不确定它是否有并且在其他地方搞砸了
  • 我可以看到查询字符串下显示的 chrome 网络选项卡中的变量 当我点击提交按钮时的参数但它只被识别 作为 GET 电话

jsp页面

<form action="/foo/bar.htm" method="post">
        <select name="aSelector">
            <c:forEach var="item" items="${itemList}">
                <option name="itemId" value="${item.getItemId()}">${item.getItemName()}</option>
            </c:forEach>
        </select>
        <input type="submit" value="Submit">
    </form>

控制器

// Get method works and is mapped to the same url "foo/bar.htm"

@RequestMapping(value="/foo/bar.htm", method=RequestMethod.POST)
    public String doPost(HttpServletRequest request) {
        Foo obj = new Foo();

        int itemId = Integer.parseInt(request.getParameter("aSelector"));

        aService.save(itemId);

        return "jsp page name here";
    }

我只采用某些变量,因为我的实体对象有一个自动生成的 ID,我将其排除在外以支持在 Service 中使用 EntityManager.persist(obj)

java spring-mvc model-view-controller http-post
© www.soinside.com 2019 - 2024. All rights reserved.