首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在<form:select>中使用Java ENUM

如何在<form:select>中使用Java ENUM
EN

Stack Overflow用户
提问于 2012-03-29 22:34:43
回答 3查看 14.8K关注 0票数 1

我正在尝试使用<form:select>标签在我的编辑内容.jsp中使用下面的ENUM,但是找不到如何做到这一点的示例。

代码语言:javascript
复制
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对象作为${content}传递给我的.jsp文件。

我在试着做

代码语言:javascript
复制
<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

我对此有些误解,但我不能确定是哪一个……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-29 23:24:19

您的<form:select>路径引用了名为getContent()的getter,该getter返回一个具有getter getPaperless()的对象。也许您只想在操作模型类上使用getPaperless()。

然后,要显示枚举值列表,您只需声明一个空的options标记:

代码语言:javascript
复制
<form:select path="paperless">
   <form:options/>
</form:select>
票数 6
EN

Stack Overflow用户

发布于 2016-11-18 18:19:52

您必须将枚举转换为集合,并将其放入模型中。然后在表单中使用它:像任何列表一样选择。示例代码:

在你的控制器中

代码语言:javascript
复制
 model.addAttribute ("paperless", Arrays.asList(Paperless .values()));

在您的jsp中

代码语言:javascript
复制
<form:select ... items="${paperless}" itemValue="name" itemLabel="description"/>
票数 1
EN

Stack Overflow用户

发布于 2012-03-29 23:20:43

请相信,如果将Paperless.values()作为对象传递给jsp页面,然后取消对名称和描述的引用,就会得到想要的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9927549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档