我是一个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
“ads”是我选择的值之一。我认为priviledge字段的值已经是List,但它似乎以不同的方式工作。我试图遍历$ param.priviledge对象,我得到所有的值没有问题。
如何使用此列表填充列表?
感谢您的帮助。 罗伯特
答案 0 :(得分:1)
尝试将字符串“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;
}
(我不知道你是否简化了在此发布的代码,但你不应该使用默认包 - 很多网络服务器都不喜欢它,并且无法实例化你的{ {1}}类。)