0

我的 .JSP 文件中的选择有问题:

<select class="selectpicker form-control" name="poiCategory" id="poiCategory"
        data-size="10" data-live-search="true">
    <option value="-1">Brak</option>
    <c:forEach items="${categoryList}" var="category">
        <option value="${category.id}" data-tokens="${category.name}">${category.parent.parent.name}
            <b>&rarr;</b> ${category.parent.name}
            <b>&rarr;</b> ${category.name}
        </option>
    </c:forEach>
</select>
  • 引导程序 4.1

  • Java Spring MVC

在控制器中:

System.out.println(request.getParameter("poiCategory"));

返回空...

其他输入正常发送参数。

你能帮我吗?

4

2 回答 2

0

你需要ModelAttribute并且spring forms做你的工作。

这是从下拉列表中选择用户并在后端接收其值的示例代码。

在 JSP 中:

<form:form action="someURL" modelAttribute="userform" method="POST">

    <form:select path="username">
        <form:option value="1"></form:option>
        <form:option value="2"></form:option>
        <form:option value="3"></form:option>
    </form:select>
    <input type="submit" />
</form:form>

在控制器中:

public void getSelectedUser(@ModelAttribute UserProfile user) {
        System.out.println("in the select method " + user.getUsername()); // prints value 1/2/3
    }

需要注意的几件事是:
1:UserProfile 是 JAVA 类,其字段为“用户名”。

2:我们应该在jsp的modelandview中添加“userform”作为对象。
modelAndView.addObject("userform" , new UserProfile());

3:在spring表单中写入路径并为其赋值,这也是传递类的字段。(在这种情况下,它是“用户名”)。

于 2018-07-03T16:02:59.340 回答
0

尝试改用spring <form:select/>MVC

<form:select path="poiCategory">
   <form:option value="-1" label="Brak"/>
   <form:options items="${categoryList}" itemValue="name" itemLabel="category.parent.name"/>
</form:select>

此示例可能需要进行一些更改以满足您的需求,但我相信它应该可以工作。

要使用此标签库,您需要将以下指令添加到 jsp 页面的顶部

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
于 2018-07-03T13:14:24.010 回答