从我的控制器,我发送一个对象列表到我的jsp视图。我正在使用spring form:选择标签使下拉列表有效,但它在内存中显示奇怪的对象引用。我怎样才能让它只显示我传入的对象的名称属性。
<form:form commandName="game">
<form:select path="name" items="${listOfGames}"></form:select>
</form:form>
这段代码给了我一个游戏对象的下拉列表,但我希望下拉列表显示名称属性
答案 0 :(得分:4)
如果你只使用上面的items属性,spring会尝试&#34; stringify&#34;你的列表/数组元素,即在每个元素中调用toString(),并且因为你没有覆盖它,所以在Object中定义了一个元素。例外情况是,只要您传递Map<String, String>
,其中键用于value属性和显示值。
您必须正确使用form:options标记来明确声明哪个属性用于键,哪个属性用于显示
<form:select path="game">
<form:options items="${listOfGames}" itemValue="id" itemLabel="name"/>
</form:select>
假设您要绑定id属性
答案 1 :(得分:1)
我的猜测是问题是因为你没有使用选项标签。
<form:form commandName="game">
<form:select path="name">
<form:options items="${listOfGames}" />
</form:select>
</form:form>
答案 2 :(得分:0)
尝试这个::::
<form:form method="post" commandName="game">
<form:select path="name">
<form:option label="Setect A Game"/>
<form:options items="${listOfGames}"/>
</form:select>
</form:form>