本帖最后由 hrb_lyc 于 2014-01-27 14:55:27 编辑

解决方案 »

  1.   

    你说getKeyword()是用来接收form中提交的所要查询的关键字,用println实验发现可以接收到如果我在action不用getkeyword而直接写"关键字" 然后直接访问http://localhost:8080/SSH_03/currentlist
    就可以得到结果
     
    getKeyword()是用来接收form中提交的所要查询的关键字,用println实验发现可以接收到
    比如 commodity.getKeyword() 得到的值是 "a" ;
    ActionContext.getContext().put("commodity",commodityService.all(commodity.getKeyword()));
    这样没结果?如果我在action不用getkeyword而直接写"关键字" 
    ActionContext.getContext().put("commodity",commodityService.all("a")); 
    这样就有?
      

  2.   

    对呀 就是直接把字符串写到函数里去 然后直接访问action就能得到内容 
    如果从另一个页面form给getter传参 然后结果页面里就得不到
      

  3.   

    用println实验发现可以接收到,list也可以遍历出来。你确定?截图
      

  4.   

    http://img.bbs.csdn.net/upload/201401/27/1390808496_528475.jpg你这样请求时,,后台打个断点看看
    commodity.getKeyword() 是什么 是2014?commodityService.all(commodity.getKeyword())) 有没有取到值
      

  5.   

    ActionContext.getContext().put这个方法可能使用不当。参考,http://www.iteye.com/problems/82392。<s:iterator value="#request.commodity">它是默认是去page,request,session,application里面去找的,你用commodity.getKeyword()时,它优先去找commodity的值,发现有值,就取到它,在页面里显示出来,结果显示出来就是错误的值。同理,另一种情况也能解释了。
      

  6.   

    ActionContext.getContext().put改为ActionContext.getContext().getSession().put
    然后页面中的<s:iterator value="#request.commodity">改为session.commodity应该就可以了。
      

  7.   

    ActionContext.getContext().put改为ActionContext.getContext().getSession().put
    然后页面中的<s:iterator value="#request.commodity">改为session.commodity应该就可以了。
    或者直接把<s:iterator value="#request.commodity">改为value="#commodity"试试。
      

  8.   

    ActionContext.getContext().put改为ActionContext.getContext().getSession().put
    然后页面中的<s:iterator value="#request.commodity">改为session.commodity应该就可以了。
    或者直接把<s:iterator value="#request.commodity">改为value="#commodity"试试。直接#commodity能取到了 哈哈 谢谢