我正在尝试使用<form:select>
标记在我的编辑内容.jsp中使用以下ENUM,但无法找到有关如何执行此操作的示例。
public class Content implements Serializable {
public enum Paperless {
NONE(null, ""),
EDELIVERY_RECOMMENDED("EDELIVERY_RECOMMENDED", "Recommend eDelivery"),
EDELIVERY_REQUIRED("EDELIVERY_REQUIRED", "Require eDelivery"),
EDELIVERY_REQUIRED_JUSTIFICATION("EDELIVERY_REQUIRED_JUSTIFICATION", "Require eDelivery w/out justification");
private String name;
private String description;
Paperless(String name, String description) {
this.name = name;
this.description = description;
}
public String getName() {
return this.name;
}
public String getDescription() {
return this.description;
}
}
....
上面的内容对象作为${content}
传递给我的.jsp文件。
我正在尝试
<form:select path="content.Paperless">
<form:options items="${content.Paperless}" itemLabel="name"/>
</form:select>
这是一个例外......
org.springframework.beans.NotReadablePropertyException: Invalid property 'content' of bean class [com.fettergroup.cmt.model.Content]: Bean property 'content' is not readable or has an invalid getter method: Does the return type of the getter match the parameter
我对此有些误解,但我无法确定哪一个......
答案 0 :(得分:6)
您的<form:select>
路径指的是名为getContent()的getter,它返回一个具有getter getPaperless()的对象。也许你想在你的动作模型类上使用getPaperless()。
然后要显示枚举值列表,您只需要声明一个空选项标记:
<form:select path="paperless">
<form:options/>
</form:select>
答案 1 :(得分:1)
您必须将枚举转换为集合并将其置于模型中。 然后在表单中使用它:像任何列表一样选择。示例代码:
控制器中的
<form:select ... items="${paperless}" itemValue="name" itemLabel="description"/>
在你的jsp中
Deploying Heroku Version 82d8ec66d98120ae24c89b88dc75e4d1c225461e
Traceback (most recent call last):
File "<string>", line 1, in <module>
KeyError: 'source_blob'
Traceback (most recent call last):
File "<string>", line 1, in <module>
KeyError: 'source_blob'
curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
Traceback (most recent call last):
File "<string>", line 1, in <module>
KeyError: 'output_stream_url'
curl: try 'curl --help' or 'curl --manual' for more information
答案 2 :(得分:0)
相信如果您将Paperless.values()作为对象传递给您的jsp页面,然后取消引用名称和描述,您将获得所需的结果。