jsp页面:
select控件:
<s:select name="sex" list="sexList" listKey="id" listValue="text" headerKey="null" headerValue="请选择..." value="null"></s:select>action:
List sexList = new LinkedList();
sexList = userService.getSexList(); //获得性别列表,下拉框使用
正常打开jsp页面没问题
提交时,执行验证框架,验证未通过,返回input,也就是上面的页面,然后提示错误:
tag 'select', field 'list', name 'sex': The requested list key 'sexList' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name}这个要怎么解决

解决方案 »

  1.   

    改一改吧,别这么写。这么写验证没通过List里的值都是空的,用dwr吧,很简单。
      

  2.   

    input返回的时候要通过你的 xxx.do  到你的input.jsp
    并且保证
    sexList在request里
      

  3.   

    在input的request中,sexList没有值,两种解决方法建议:
    1.在验证失败后,赋sexList值;
    2.验证失败后,跳到提示页面,要点击"返回"链接才能返回重新填写.当然用dwr是最好的了.
      

  4.   


    请问验证失败后,怎么赋sexList值?
    使用了验证框架,失败了默认就找input
      

  5.   

    恩,用ajax吧。实现起来简单,多其它select控件都可以这么用。
      

  6.   

    这个问题,其实我觉得有个思路很好解决,问题的根源在于错误处理拦截器在半路直接将页面返回到编辑页面,所以不管你用什么返回结果的方式,只要配置了错误处理拦截器,都避免不了被拦截的命运。所以只要你有字段没通过验证,你始终是进入不到action中去的,即使你用chain的方式进去了,最后还是免不了拦截的命。那么,换一种思路,我们可不可以在select的list上直接调用方法,而不调用action呢。答案是可以的,你可以用静态方法,也可以用普通方法。