表单选项不填充

时间:2014-04-10 21:09:45

标签: java spring jsp spring-mvc

在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" %>

我还需要发布哪些内容才能看到问题?

1 个答案:

答案 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"%>

此外,您似乎已声明了许多重复的标记库。