解决方案 »

  1.   

    前台拿到的 id 是空吧
    我怀疑 jsp 前台拿到的就是空的,然后传给后台 atcion 的肯定就是空的了
      

  2.   

    <s:a action="role_delete?id=%{id}" onclick="return confirm('确定要删除吗?')">删除</s:a>
    改成<s:a action="role_delete?id=${id}" onclick="return confirm('确定要删除吗?')">删除</s:a>
      

  3.   

    建议楼主不要使用struts2.x的标签,多使用JSTL的!哪天项目MVC换成SpringMVC了,这样改的地方就多了. 二楼的方法你可以尝试一下!
      

  4.   

    你查看一下浏览器的源码看看是不是已经获取到值了,如果id值是获取到了,那你再接着看传到action里面为什么是空的。如果前台获取到id了,你再在action里面用比较原始的方法request.getParamter()的方法获取一下看看,如果能获取到,你就看看action那边是不是定义的私有变量没有写set get方法~~~  楼主这样一步一步检查一下吧~~!!!
      

  5.   

    <s:iterator value="#roleList" id="role">
    <s:property value="#role.id"/>
    </s:iterator>看看还有值?
      

  6.   

       struts2标签取值 (roleList为实体类集合)    <s:iterator value="#roleList“  >
    <tr> <td class="center"><s:property value="name" />
    </td>
    </tr>
    <s:a action="role_delete?id=<s:property value="id"/>" onclick="return confirm('确定要删除吗?')">删除</s:a>
    </s:iterator>
      

  7.   

    ${id}这样不能写加载就要报错<S:A>标签没有这样传值的。
      

  8.   

    一般hibernate的getSession().get(xx.class,id)传给该方法的id参数为null,会报id to load is required for loading错误.
    你还是调试一下,看哪个地方出id传递出问题了.