有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java复选框值和useBean标记

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

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

其中,属性priviledge是一个列表和$param。对一系列复选框的值进行特权,我得到一个

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

“广告”是我选择的价值观之一。我认为priviledge字段的值已经是一个列表了,但它似乎以不同的方式工作。我试图遍历$param。priviledge对象和我可以毫无问题地获得所有值

如何使用此列表填写列表

谢谢你的帮助。 罗伯托


共 (1) 个答案

  1. # 1 楼答案

    Attempt to convert String "ads" to type "[Ljava.lang.String;"

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

    param映射中的值是字符串;要以数组的形式获取所有值,请使用paramValues映射

    ${paramValues.priviledge}
    

    Subscriptionbean上的属性需要是字符串数组:

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

    (我不知道您是否简化了在这里发布的代码,但是您不应该使用默认包-许多web服务器不喜欢它,并且无法实例化您的Subscription类。)