<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    cAng^Er

    不懂我的人 , 離不了我 , 該了解了解我 !而懂我的人 , 更離不了我 , 因為他們愛我 。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      30 隨筆 :: 16 文章 :: 18 評論 :: 0 Trackbacks
    原:http://blog.csdn.net/chikai/archive/2004/12/06/206371.aspx
    webwork對頁面諸如像checkbox這種表單元素的處理,我們如果只是簡單的用來設置字段的布爾值,就像下面的處理方式,如:
    <input type="checkbox" name="user.lockedOut" value="true"/>如果用戶選中這復選框,瀏覽器在查詢串中將會送出"user.lockedOut=true",此時OGNL執(zhí)行了action.getUser().setLockedOut(true)。如果用戶不選中復選框,瀏覽器將不會送出查詢串,因此,在開始,應確保已經(jīng)初始化lockedOut 為false:
    private boolean m_lockedOut = false;
    public void setLockedOut(boolean lockedOut) { m_lockedOut = lockedOut; }

    ??????? 但更多情況下,我們是把它當做復選(多項選擇)來用,這有兩種情況用checkbox來設置集合:
    一.checkbox name相同
    在一個String 類型的Set 集合里面存放許多權限,用checkbox的HTML如下:
    <input type="checkbox" name="user.priv" value="boss"/>
    <input type="checkbox" name="user.priv" value="admin"/>
    <input type="checkbox" name="user.priv" value="manager"/>
    比方說,一個用戶選中前面的兩項,瀏覽器將會送出這查詢串: user.priv=boss&user.priv=admin。
    OGNL將會處理查詢串:action.getUser().setPriv(String[] {"boss", "admin"})。
    Action里面的方法將會是這樣:
    Set m_privileges = new HashSet();

    ??? public void setPriv(String[] privs) {
    ??????? for (int i = 0; i < privs.length; i++) {
    ??????????? m_privileges.add(privs[i]);
    ??????? }
    ??? }
    二.checkbox name不同
    有三種處理方式:
    I.
    ?<input type="checkbox" name="xlist[0].id" value="444">
    ?<input type="checkbox" name="xlist[1].id" value="443">
    ?<input type="checkbox" name="xlist[2].id" value="442">
    ?* Action中用List集合來處理:private List xlist = new XWorkList(User.class)
    ??? public List getXlist(){????????????
    ??????? return xlist;
    ??? }
    II.?
    ?<input type="checkbox" name="xmap['0'].id" value="444">
    ?<input type="checkbox" name="xmap['1'].id" value="443">
    ?<input type="checkbox" name="xmap['2'].id" value="442">
    ? * Action中用Map集合來處理:private Map xmap = new XWorkMap(User.class)
    ??? public List getXmap(){????????????
    ??????? return xmap;
    ??? }
    ?III.
    ?<input type="checkbox" name="xarray[0]." value="444">
    ?<input type="checkbox" name="xarray[1]" value="443">
    ?<input type="checkbox" name="xarray[2]" value="442">
    ? *Action中用Object[]數(shù)組來處理(注意數(shù)組的長度必須事先確定,不可以動態(tài)改動數(shù)組的大小):
    ???? private Object[] xarray = new Object[3]
    ???? public Object[] getXarray(){
    ??????????????? return xarray;
    ??????? }

    ??????? 下面用一個稍為復雜一點的例子來加深對List集合處理方式的理解,其它處理方式都是異曲同工。
    multiSelect.jsp文件
    <%@page pageEncoding="gb2312" contentType="text/html;charset=gb2312"%>
    <%@taglib prefix="ww" uri="webwork" %>
    <html>
    ?? <body>
    ?? <form name="multi" method="post" action="multiSelect.action">
    ????? <%int i = 0; %>
    ????? <ww:iterator value="ulist">
    ????? <%
    ??????? String cName = "xlist["+i+"].id";
    ??????? i++;
    ?????? %>
    ?????? <input type="checkbox" name="<%=cName%>" value="<ww:property value="id"/>">
    ?????? <ww:property value="username"/>
    ?????? <br>
    ????? </ww:iterator>
    ????? <input type="hidden" name="actionEvent" value="viewSelect">
    ????? <input type="submit" value="選擇">
    ?? </form>
    ?? </body>
    </html>

    multiSelect_result.jsp文件
    <%@page pageEncoding="gb2312" contentType="text/html;charset=gb2312"%>
    <%@taglib prefix="ww" uri="webwork" %>
    <html>
    ?? <body>你的選擇是:<br>
    ?????? <ww:iterator value="xlist">
    ?????? <ww:property value="id"/>
    ?????? <br>
    ????? </ww:iterator>
    ?? </body>
    </html>

    MultiSelectAction.java文件

    package com.wzj.rbac.webwork.action;
    import java.util.List;
    import com.opensymphony.xwork.Action;
    import com.opensymphony.xwork.util.XWorkList;
    import com.wzj.framework.spring.resource.BeanLocator;
    import com.wzj.rbac.ServiceFacade.UserService;
    import com.wzj.rbac.domain.object.User;
    /**
    ?* @desc 復選框 選擇提交Action類
    ?* @author chikai<br>
    ?* @link <a href="mailto:wzj616@etang.com">chikai</a>
    ?* @version $ MultiSelectAction.java? 2004-12-5 19:11:54 $
    ?* @version $ Project xwork
    ?*/
    public class MultiSelectAction implements Action {

    ??? private final static String PRE_SUCCESS = "pre_success";
    ??? //用戶列表
    ??? private List ulist;
    ??? //選擇的用戶
    ??? private List xlist = new XWorkList(User.class);
    ??? private UserService uService;
    ??? //頁面執(zhí)行動作判斷
    ??? private String actionEvent;
    ???
    ??? public String execute() throws Exception {
    ?????? if(actionEvent!=null&&actionEvent.equals("viewSelect"))
    ?????? {??
    ?????????? for(int s=0;s<xlist.size();s++){
    ?????????????? if(((User)xlist.get(s)).getId()==null){
    ?????????????????? xlist.remove(s);
    ?????????????????? s--;
    ?????????????????? }
    ?????????? }?
    ?????????? return SUCCESS;
    ?????? }
    ?????? //獲取用戶業(yè)務服務
    ?????? uService = BeanLocator.getGlobalServiceLocator().getUserService();
    ?????? ulist = uService.getAllUser();
    ?????? return PRE_SUCCESS;
    ??? }
    ??? public List getUlist(){
    ??????? return ulist;
    ??? }
    ??? public List getXlist(){????????????
    ??????? return xlist;
    ??? }
    ??? public void setActionEvent(String ae){
    ??????? actionEvent = ae;
    ??? }
    }


    xwork.xml文件:

    <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "

    <xwork>
    ?
    ?<include file="webwork-default.xml" />
    ??? <include file="config-browser.xml" />
    ??? <package name="pklogin" extends="webwork-default">
    ?
    ??? <interceptors>
    ??????? <interceptor-stack name="modelParamsStack">
    ???? <interceptor-ref name="model-driven" />
    ??????? <interceptor-ref name="params" />
    ??????? </interceptor-stack>?
    ?</interceptors>?
    ?
    ?<action name="multiSelect" class="com.wzj.rbac.webwork.action.MultiSelectAction">
    ??<result name="success" type="dispatcher">
    ??????????? <param name="location">/multiSelect_result.jsp</param>
    ??????? </result>
    ??<result name="pre_success" type="dispatcher">
    ???<param name="location">/multiSelect.jsp</param>
    ??</result>
    ??<interceptor-ref name="modelParamsStack" />
    ?</action>
    ??
    ?</package>

    </xwork>

    主站蜘蛛池模板: 亚洲欧洲国产视频| 一区二区在线视频免费观看| 日本免费v片一二三区| 尤物视频在线免费观看| 亚洲第一区香蕉_国产a| 成人午夜性A级毛片免费| 亚洲日韩在线观看免费视频| 亚洲成人高清在线观看| 免费一区二区视频| 久久免费公开视频| 亚洲国产成人AV网站| 亚洲欧洲免费视频| 国产zzjjzzjj视频全免费 | 亚洲一级片在线观看| 免费一级肉体全黄毛片| 免费国产成人α片| 亚洲a无码综合a国产av中文| 中文字幕亚洲免费无线观看日本| 国产aa免费视频| jjizz全部免费看片| 抽搐一进一出gif免费视频| 中文字幕亚洲综合久久综合| 国产AV无码专区亚洲Av| 国产午夜免费福利红片| 中国人xxxxx69免费视频| 中文无码日韩欧免费视频| 亚洲AV综合永久无码精品天堂| 久久久久亚洲AV片无码| 亚洲精品尤物yw在线影院| 一个人免费观看www视频在线| 99久久国产精品免费一区二区| 亚洲av日韩综合一区久热| 亚洲综合激情六月婷婷在线观看| 久久影视国产亚洲| 亚洲av区一区二区三| 毛片A级毛片免费播放| 91免费人成网站在线观看18| 最近国语视频在线观看免费播放| 免费视频成人国产精品网站| 国产精品亚洲一区二区麻豆| 亚洲高清视频在线播放|