这个事 我曾经干过 不过用的是struts1.1的

解决方案 »

  1.   

    呃~~~~看样子是我把lz给害惨了。上次在IM上没有说清楚,我以为lz自己已经把这个问题搞出来了~~唉~~~~~这贴我还是详细说明下吧。另:我的QQ已经很少启用了。你可以加我上次发给你的MSN。CSDN的IM比较难用~~~~还是从上一贴说起,由于lz你写的信息太少。我只写了一个简单的例子来说明。这个说明里面用的是s:checkboxlist.本来是s:checkboxlist比较s:checkbox难理解些。结果却没能投中楼主的意图。后来在IM里我对你说用html来控制并不是说你还需要用这个标签。在这里我把这两个标签的使用说下。lz仔细看下了解他的使用意图。先说我上次说的s:checkboxlist。这个标签使用的目的是列出一个list的checkbox。比如说当选择性别的时候会需要列出男女这两项。这样用checkboxlist是很方便的。如下例:<s:checkboxlist name="sex" 
                            label="sex :" 
                            list="{ 'male', 'female'}" 
                            value="{ 'male'}" />这样就会列出male和female来进行选择,而male是默认选择的。注意这个列的时候一定是横排的。另外一个应该就是lz想要的功能。就是将一个boolean的属性显列出来。这个时候需要用s:checkbox这个标签。不过要是实现列出一个list需要用s:iterator标签进行辅助。看下下面这个例子。
    <table>
    <tr>
        <td>UserID</td>
        <td>UserName</td>
        <td>Password</td>
        <td>isChecked</td>
    </tr>
    <s:iterator value="userList"> 
    <tr> 
    <td> <s:property value="userId"/> </td>
    <td> <s:property value="userName"/> </td>
    <td> <s:property value="userPassword"/> </td>
    <td> <s:checkbox label="ischecked"  name="checked" value="true"/></td>
    </tr> 
    </s:iterator>
    </table>
    这样就会列出一个userlist中的ischecked属性。我这里直接是将他设置成选择了。为了你能够方便的理解。value就是他默认的选择。大体就是这些。lz理解下,看看你的需求到底是那种~~~有问题可以MSN联系我,或者发出来。
      

  2.   

    对了。还有一种就是属性需要去选择,就是比如user属性中有sex这个属性。需要用户进行选择。由于lz上一贴问的是如何默认选择,所以我在上边也没有细说明这种。如果是这个样子的话。就是s:iterator标签和checkboxlist标签的一个组合,具体做法和上贴中第二种一样的方法。只不过value中放入的是选择的那个属性。具体做法我不写出来了。lz自己理解下,我想你应该能够自己做出来的。
      

  3.   

    没有办法把横排改成竖排,除非修改struts2的ftl模板文件才可以
      

  4.   

    可以的,例如
    <td>
    <table width="90%" height="100%" border="0">
    <s:iterator value="list" status="stat">
    <tr <s:if test="#stat.odd">class="row1"</s:if>
    <s:else>class="row2"</s:else>>

    <td>
    <s:checkboxlist name="listSelected" list="#stat.index" listKey="id" listValue="name"/>
    </td>

    </s:iterator>
    </table>
    </td>
      

  5.   

    关注,呵呵
    theme=xhtml
    下面的排版比较糟糕,两个button,submit竟然是两行,太难看了
    theme=xhtml还给表单加了个表格,
      

  6.   

    首先定义放置checkboxlist的td的id为checktd,当然也可以是其它容器,你可以更改下面的代码实现checkboxlist竖排或横向只允许放置n个,这是我自己想的方法(绝对原创),给我分吧!
    <script type="text/javascript">
        //得到checkboxlist的td,自定义td的id为checktd
    var checktd = document.getElementById("checktd"); 
    //得到一个checkbox数组
    var checkboxs = checktd.getElementsByTagName("input");
    //最前面不需要br 从1开始
    for ( var i = 1; i < checkboxs.length; i++) {
    //每个br只能用一次,所以在循环内创建
    var br = document.createElement("br"); 
    //checkbos前插入br
    checktd.insertBefore(br, checkboxs[i]);
    }
    </script>
      

  7.   

    整理楼上回复
    <script type="text/javascript"> 
        //得到checkboxlist的td,自定义td的id为checktd 
    var checktd = document.getElementById("checktd"); 
    //得到一个checkbox数组 
    var checkboxs = checktd.getElementsByTagName("input"); 
    //最前面不需要br 从1开始 
    for ( var i = 1; i < checkboxs.length; i++) { 
    //每个br只能用一次,所以在循环内创建 
    var br = document.createElement("br"); 
    //checkbos前插入br 
    checktd.insertBefore(br, checkboxs[i]); 

    </script>