小弟刚学STRUTS2不久,现在在用这个来做项目
遇到一个问题,我在后台有个LIST,然后在前台要把这个LIST给打印出来
<s:iterator value="activityLogList" status="rowStatus"
id="activityLog">
<tr>
<td><s:property value="#activityLog.user" /></td>
<td><s:property value="#activityLog.code" /></td>
<td><s:property value="#activityLog.description" /></td>
<td><s:property value="#activityLog.activityDate" /></td>
<td><s:property value="#activityLog.result" /></td>
</tr>
</s:iterator>
然后呢,有个字段description,他的信息很长,我不想显示在这个页面,但是给个连接点进去看又不好,因为只为了看他的description而触发个ACTION不太好,所以我就想通过CSS来控制,就是当鼠标移动到这条记录user的时候,就会有个层显示出来
然后显示他的description信息,如果不用STRUTS2的话我是可以实现的,但是如果用了STRUTS2我就不知道该怎么实现了,由于很急所以来不及再去翻阅什么资料了,有会的能不能帮我写出来呢...真的不甚感激!!我知道是用DIV 生成ID,但是关键是怎么做啊..

解决方案 »

  1.   

    使用<s:hidden> 先将description持久
    <s:hidden id = "对象id" value = ""/>,然后鼠标移动到,传id,js控制显示,ok。。
      

  2.   

    1楼的你是不是没明白我的意思哦..不是要HIDDEN啊.而且STRUTS2具体怎么做啊...能详细的写写吗???我知道要怎么做,如果不用DTRUTS2我也做的出来,关键就是标签我不会用啊,能写的具体点给我看看吗??谢谢啦
      

  3.   

    自己定义一个js function  show(description){
    里面具体写你的显示代码 
    }
    然后
    <s:iterator value="activityLogList" status="rowStatus" 
    id="activityLog"> 
    <tr onmouseover="show('<s:property value="#activityLog.description" />')"> 
    <td > <s:property value="#activityLog.user" /> </td> 
    <td> <s:property value="#activityLog.code" /> </td> 
    <td> <s:property value="#activityLog.description" /> </td> 
    <td> <s:property value="#activityLog.activityDate" /> </td> 
    <td> <s:property value="#activityLog.result" /> </td> 
    </tr> 
    </s:iterator> 
    具体事件用什么以及由什么标签触发 由你自己决定
      

  4.   

    <script>
    js 用jquery 
    $("#对象Id").hover(function() { // 鼠标滑过事件
       var desc = $(".对象Id").val();
       // 层处理就Ok了
    });
    </script>java
    <s:iterator value="activityLogList" status="rowStatus"
    id="activityLog">
    <tr>
    <td> <s:property value="#activityLog.user" id = "#activityLog.id"/>
    <s:hidden value = "#activityLog.description" class = "#activityLog.id"/>

     </td>
    <td> <s:property value="#activityLog.code" /> </td>
    <td> <s:property value="#activityLog.description" /> </td>
    <td> <s:property value="#activityLog.activityDate" /> </td>
    <td> <s:property value="#activityLog.result" /> </td>
    </tr>
    </s:iterator> 
      

  5.   

    4楼的要是再详细点就好了,5楼..其实我没有用JQUERY.而且ID也不是activityLog.id,activityLog对象的ID是很长很长的串是用UUID来做的,我现在只想单纯的生成ID,其实用STRUTS2的rowStatus.index可以做,但是我想用a href这样的方式来做...麻烦各位了啊..看看怎么做呢...
      

  6.   

    就是当鼠标移动到这条记录user的时候,就会有个层显示出来 
    然后显示他的description信息,如果不用STRUTS2的话我是可以实现的
    ------------------
    你既然会实现了  具体的css和js就不用我说了吧.
    如果你是想使用一个层然后动态的修改显示层的内容(就是description),你可以自己定义一个js方法,此方法接收的参数就是description 可以使用show(' <s:property value="#activityLog.description" />传递进入
     
    如果你是想使用多个层(你list有多少个user就创建多少个层),你可以预先把description 的值放置在对应的层内,所有层默认都是隐藏的 每个层可以单独设置ID 为每个user的主键,你在定义一个js方法 参数为层ID,具体怎么显示隐藏层 就是你js方法的事了 补充一点 所有JS 方法参数/HTML标签的所有属性 都可以使用<s:property/>标签来赋值
      

  7.   

    ....这个就是你js 和css的问题了 没办法帮你解决  可以提个建议 你可以使用onmouseover事件  然后层的显示位置跟随鼠标位置
      

  8.   

    使用offset控制层出现的位置。