在spring mvc app中,以下代码不会填充下拉列表:
<form:select path="medication.doseformSelected">
<form:option value="-1">Select a dose form</form:option>
<form:options items="${doseforms}" itemLabel="str" itemValue="rxaui" />
</form:select>
以下是由上述代码生成的html:
<form:select path="medication.doseformSelected">
<form:option value="-1">Select a dose form</form:option>
<form:options items="[Mouthwash, Solution, Tablet, Toothpaste, Cream, Foam]" itemLabel="str" itemValue="rxaui" />
</form:select>
如您所见,选项项填充为在用户浏览器中不可见的列表,除非它们查看源。
如何更改代码以便正确填充下拉列表?
作为参考,这里是jsp顶部引用的taglib的完整列表:
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="datatables" uri="http://github.com/dandelion/datatables" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="joda" uri="http://www.joda.org/joda/time/tags" %>
我还需要发布哪些内容才能看到问题?
答案 0 :(得分:3)
不,Spring的form
标记库会生成HTML <form>
元素,所以如果这个
<form:select path="medication.doseformSelected">
<form:option value="-1">Select a dose form</form:option>
<form:options items="[Mouthwash, Solution, Tablet, Toothpaste, Cream, Foam]" itemLabel="str" itemValue="rxaui" />
</form:select>
出现在浏览器中看到的HTML源代码中,这意味着JSP Servlet没有使用form
标记库来呈现它,而是直接将它写入响应(在解析EL之后)。
你好像不见了
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
此外,您似乎已声明了许多重复的标记库。