开发者社区> 问答> 正文

form表单提交后报错,具体内容进来看. ?报错

form提交报错
严重: Servlet.service() for servlet jsp threw exception
tag 'select', field 'list', name 'personcost.pid': The requested list key 'polist' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
我的form表单
图片说明
图片说明
哪里错了?为什么错?怎么办?

展开
收起
爱吃鱼的程序员 2020-06-22 23:51:32 662 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你看错误信息就知道:
    Therequestedlistkey'polist'couldnotberesolvedasacollection/array/map/enumeration/iterator

    list属性定义的变量在Action中必须是一个可以迭代的对象如数组,列表,Map等。
    你在你的Action中看看这个polist是怎么定义的。
    是没有定义getter和setter还是你把它的类型定义错了。

    改成这样s:selectname="personcost.{pid}"试试

    原因是由于Action里面没有写对应的get(),set()方法,或者写错了。

    原因是由于Action里面没有写对应的get(),set()方法,或者写错了。

    应该是你后台的属性,没有和组件的类型匹配上

    polist是一个list,并且有get和set方法.

    post属性:
    publicclassPost{
    privateintpid;//职位编号
    privateStringpname;//职位名称
    privateintbid;
    action中的post和polist:
    privatePostpost;
    privateListpolist;
    publicListgetPolist(){
    returnpolist;
    }
    publicvoidsetPolist(Listpolist){
    this.polist=polist;
    }
    publicPostgetPost(){
    returnpost;
    }
    publicvoidsetPost(Postpost){
    this.post=post;
    }
    orm映射:
    <!--职位-->
    <!--职位编号-->


    <!--职位名称-->
    <!--工资等级-->

    没看出哪错了

    2020-06-22 23:51:51
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载