在formBean中设置,好像把页面上checkbox的一个值赋给formbean中这个属性初始值。
记不太清了,你试试看

解决方案 »

  1.   

    给formbean中相关的属性设置初值
      

  2.   

    checkde = true;
    上面写错了
      

  3.   

    checked = true;
    晕,还是写错了
    sorry
      

  4.   

    <html:checkbox property="checkbox1" checked="true"> checked="true"没有这个属性,看来只能用JS或HTML去直接设置了
      

  5.   

    是的!没有 checked="true"这个属性的应该怎么做呢?上面的能帮我解决吗?
      

  6.   

    <html:checkbox property="checkbox1" checked="true" value="true"/>
      

  7.   

    <html:checkbox property="checkbox1" checked="true" value="true"/>
    this.setCheckBox1(true);
      

  8.   

    struts的checkbox是没有checked属性滴,如果有需要,可以将源文件org.apache.struts.taglib.html.CheckboxTag 稍作修改,将checked属性加上去,还有一个方法,那就是写<input type="checkbox" name="" value="" checked>
      

  9.   

    给你个思路吧,其实我们可以这么想,当我们选中一个checkbox并提交时set进form里面的值是什么呢?那么我们是不是可以反过来做,将相应的值set进form里,然后转到有checkbox标签的页面,那么它必然是选中的状态。这种做法对单选框,复选框都是适用的特别是对复选框时,我们知道提交时返回的是一个String[],那么我们只要构造一个相应的String[],里面放入我们想要标识为选中的复选框的值,再set进form里,那么复选框对应的选项必为选中,且不论String[]里面值的顺序。这是我自己试验总结出来的,总之是屡试不爽!!
      

  10.   

    单纯独立的Action这样做还行,复合的action这么set会有影响的把,比如add 和edit复用的一个action
      

  11.   

    1、这个JSP没有经过action来forward的话,只能用JS来搞定了。2、这个JSP是经过action处理,即由action来forward到这个JSP的话,那么,你在这个JSP里的FormBean里设置一个checkbox1的默认值为你的值,这样,就会自动选中,即处理时会自动加上checked="checked"的。
      

  12.   

    Struts In Action中文版内容如下:10.4.2.8. 使用复选框数组
    许多应用需要使用大量的复选框来跟踪选项和选定的项目。为了帮助这种事情, Struts 提
    供了一个 multibox 控制。他十分便捷,但在第一次接触时可能难以理解。multibox 使
    HTML 可以方便处理复选框。如果复选框没有被选择,浏览器将不提交控件的任何值。
    如果复选框被选定,控件的名称和其值将被提交。这种行为却是ActionForm的reset 方法
    的原因。因为浏览器将不再表明一个复选框没有被选择,唯一的方法是重设所有的复选框,
    然后选择当前表现在请求中的选项。
    STRUTS TIP
    使用<html:multibox> 标签来将一系列复选框管理为一个数组
    multibox 控件设计来使用字符串数组。数组中的每个元素表示一个复选框。为选择一个复选
    框,在数组中添加一个标识复选框名字的字符串。要不选择一个复选框,将其从复选框中移
    除。 (看起来类似?)
    在传递值时, multibox 控件扫瞄数组中的元素看是否有匹配的项目。如果有,该复选框
    选中。如果没有,该复选框就保持未选择。
    如果用户选择复选框并且提交了表单,则该复选框的值就会包含在请求中。控制器就会将其
    加入到已选择(checked)的数组之中。如果复选框没有被选择,什么都不会提交,那么也
    不会有什么加入到数组中。如果ActionForm bean 被保持在会话上下文中,在请求之间,
    reset 方法需要减小数组长度为0(但非空)。
    在这个例子中
    <logic:iterate id="item" property="items">
    <html:multibox propety="selectedItems">
    <bean:write name="item"/>
    </html:multibox>
    <bean:write name="item"/>
    </logic:iterate>
    每个复选框的标签位于items 属性之中。选定项目的列表位于一个名为selectedItems的
    数组之中。没有选定的项目不会出现在selectedItems 数组中。multibox 检查selectedItems
    数组获得当前的项目。如果出现,它就写一个选择的复选框。如果没出现,就写一个没选定的
    复选框。
    如果一个ActionForm 设置成这样
    private String[] selectedItems = {};
    private String[] items = {"UPS","FedEx","Airborne"};
    public String[] getSelectedItems() {
    return this.selectedItems;
    }
    public void setSelectedItems(String[] selectedItems) {
    this.selectedItems = selectedItems;
    }
    例子中的标签将产生3个复选框,分别标签为UPS,FedEx,和Airborne:
    <input type="checkbox" name="selectedItems" value="UPS">UPS
    <input type="checkbox" name="selectedItems" value="FedEx">FedEx
    <input type="checkbox" name="selectedItems" value="Airborne">Airborne
    开始, selectedItems 数组是空的。如果 UPS 被选择并提交,则等同于:
    private String[] selectedItems = {"UPS"};
    如果 UPS 和Airborne 都被选择,等同于
    private String[] selectedItems = {"UPS","Airborne"};
    并且,当复选框在加工时, 适当的元素将自动被 multibox 标签检测:
    <input type="checkbox" name="selectedItems"
    value="UPS" checked="checked">UPS
    <input type="checkbox" name="selectedItems"
    value="FedEx">FedEx
    <input type="checkbox" name="selectedItems"
    value="Airborne" checked="checked">Airborne
      

  13.   

    我试了很多方法就只有JS可以做得好!其它都有问题!
    在ActionForm也不行!虽然可以选中它可以值不会变!
    不知道怎样才可以直接的设置一下!
      

  14.   

    String[] defaultColors = { "Orange", "Yellow" };
            MultiboxActionForm multiboxForm = (MultiboxActionForm) form;
            multiboxForm.setColors(defaultColors);
    用這個把默認選中的傳進multiboxForm中即可,所有元素構成數組colors,用request.setAttribute傳進,然後用上面那位朋友說的
    <logic:iterate id="color" property="colors">
    <html:multibox propety="selectedItems">
    <bean:write name="item"/>
    </html:multibox>
    <bean:write name="item"/>
    </logic:iterate>multiboxForm其中變量為String[];,包含許多String,比如説傳入orange和yellow,那麽頁面上的這兩個checkbox即被選中,如果還有其它元素,例如blue,black,white,就不會被選中。
    所有這5個元素是構造成數組,然後用request.setAttribute()傳入頁面的。
    配置文件裏要寫<form-bean name="multiboxForm" type="MultiboxActionForm(裝默認選中數組的類名)"/>
    我覺得multibox不是很好用,因爲沒有那麽多條件來把它們構造成數組,也能用arraylist等,但是我沒試驗過
    不知道我是否說得明白
      

  15.   

    遇到這種問題我都是用logic:equals比較一下,是的話就加個checked,或者直接在頁面裏寫java代碼,用struts標簽太麻煩。
    所以我說struts並不好用
      

  16.   

    checked
    设置或返回 checkbox 是否应被选中。