我是jstl新手,所以这个问题听起来可能很有趣。
无论如何,我有一个带有List作为属性的模型,我想用一个值列表(从复选框列表中选择)填充它。我在表单处理jstl页面中使用useBean标记,但是这样做是:

<jsp:useBean id='subscription' class='Subscription'>
<c:set target='${subscription}' property='priviledge' value='${param.priviledge}'/>


在属性priviledge是一个List和$ param.priviledge一系列复选框的值的情况下,我得到一个

javax.servlet.jsp.el.ELException: Attempt to convert String "ads"  to type "[Ljava.lang.String;", but there is no PropertyEditor for that type


“广告”是我选择的值之一。我以为priviledge字段的值已经是一个List,但似乎它以不同的方式起作用。我尝试遍历$ param.priviledge对象,得到所有值都没有问题。

如何使用此列表填写列表?

谢谢你的帮助。
罗伯托

最佳答案

尝试将字符串“ ads”转换为类型“ [Ljava.lang.String;”


此错误表明设置器是setPriviledge(String[] arr),而不是java.util.List

param映射中的值是字符串;要获取所有值作为数组,请使用paramValues映射。

${paramValues.priviledge}


Subscription bean上的属性必须是一个String数组:

  private String[] priviledge;

  public String[] getPriviledge() {
    return priviledge;
  }

  public void setPriviledge(String[] priviledge) {
    this.priviledge = priviledge;
  }


(我不知道您是否简化了要在此处发布的代码,但您不应使用默认程序包-许多Web服务器不喜欢它,也无法实例化Subscription类。)

10-05 18:08