spring mvc form:选择不在屏幕上显示的选项,但是在HTML源代码中

时间:2017-02-09 17:53:34

标签: html jsp spring-mvc spring-boot jsp-tags

我正在使用spring MVC模型属性方法。打开屏幕时,我必须读取JSON字符串并创建地图。在下拉列表中显示地图。我可以看到HTML源代码中的值,但没有看到屏幕上的下拉列表。

@RequestMapping("/xxx")
public ModelAndView saws(Map<String, Object> model1) throws IOException {
    ModelAndView model = new ModelAndView("xxx");
    model.addObject("message", this.welcome);
    Map<String, String> offers = engine.getOffers();
    model.addObject("offers", offers);//map of offers
    model.addObject("inputs", new inputs());
    return model;

}

JSP

<form:form action="getoffers" method="get" modelAttribute="inputs">
<body>
<table align="center">
        <tr class="blank_row">
            <td colspan="2"></td>
        </tr>
        <tr class="blank_row">
            <td colspan="2"></td>
        </tr>
        <tr align="center">
            <th span
                style="color: red; font-weight: bold; word-wrap: break-word;"
                align="center">Select the service to view current offers</th>
        </tr>
        <tr>
            <td><form:select path="offers">
                    <form:options items="${offers}" />
                </form:select></td>
        </tr>
    </table>

在屏幕上我看不到下拉菜单。当我检查源代码时,我看到了这一点。请看图片

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

假设您已经拥有sping-mvc依赖项。

html源文件不应该有<form:...>前缀。它没有正确呈现。

将它放在你的jsp文件中:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

我强烈建议您使用Thymeleaf模板引擎而不是JSP。原因太长,无法适应这个答案领域。