gpt4 book ai didi

spring-mvc - SpringMVC 表单 :options items attribute: what exactly is it expecting?

转载 作者:行者123 更新时间:2023-12-04 00:27:48 26 4
gpt4 key购买 nike

我还是 SpringMVC 的新手(和 jSTL 就是这样)。我正在尝试从对象列表中选择填充选项。我找到了一种使用 c:forEach 的方法,但我一直认为必须有一种方法可以使 form:options 方法起作用。

我已经浏览过,关于我能找到的最接近有关 items 属性的官方文档的内容是这里 >> http://static.springsource.org/spring/docs/2.0.x/reference/spring-form.tld.html#spring-form.tld.options

它说 items 属性是为了

"The Collection, Map or array of objects used to generate the inner 'option' tags"



我的困惑是它正在寻找什么样的 Collection、Map 或对象数组。它们需要采用什么格式?它是专门寻找 String 类型的 Collection 或数组吗?我可以用吗
List<MyObject>

如果是这样,MyObject 必须包含什么才能使其有效(即方法、变量)?

目前,当我尝试使用 MyObject 时,我收到一个异常,说 -

ConverterNotFoundException: No converter found capable of converting from type com.example.MyObject to type java.lang.String



我需要制作转换器吗?那会去哪里?这将如何运作?我在谷歌上搜索了那个错误信息,并没有真正找到任何特定于我正在尝试做的事情......(大多数是关于 Roo 的结果)

MyObject 类如下所示:
public class MyObject{
private String company;
private Customer customer;
private Address customerAddress;

public String getCompany() {
return company;
}

public void setCompany(String company) {
this.company = company;
}

public Customer getCustomer() {
return customer;
}

public void setCustomer(Customer customer) {
this.customer = customer;
}

public Address getCustomerAddress() {
return customerAddress;
}

public void setCustomerAddress(Address customerAddress) {
this.customerAddress = customerAddress;
}
}

我正在尝试使用它:
<form:select path="myObjectList">
<form:option value="0"/>
<form:options items="myObjectList" />
</form:select>

有谁知道这种方法有什么不正确的地方?或者,我应该使用
List<String> 

完成我正在做的事情?

编辑 这是堆栈跟踪 >> http://pastebin.com/2c5XBCmG

最佳答案

Spring Documentation关于 items 的说法form:options 的属性标签:

The items attribute is typically populated with a collection or array of item objects. itemValue and itemLabel simply refer to bean properties of those item objects, if specified; otherwise, the item objects themselves will be stringified. Alternatively, you may specify a Map of items, in which case the map keys are interpreted as option values and the map values correspond to option labels. If itemValue and/or itemLabel happen to be specified as well, the item value property will apply to the map key and the item label property will apply to the map value.



简而言之,如果您需要使用自定义 Bean 列表作为项目属性,您还需要使用 itemValueitemLabel属性。就个人而言,我更喜欢使用 map - LinkedHashMap具体实例 - 用于填充我的选择标签,但这是一个品味问题。

改编 Spring 文档中的示例,您的代码应如下所示:
 <form:select path="commandAttribute">
<form:option value="-" label="--Please Select"/>
<form:options items="${countryList}" itemValue="company" itemLabel="company"/>
</form:select>

我正在使用 company属性为两者 itemValueitemLabel ,但您可以自由选择符合您要求的属性。

关于spring-mvc - SpringMVC 表单 :options items attribute: what exactly is it expecting?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com