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

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

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

    cAng^Er

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

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      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執行了action.getUser().setLockedOut(true)。如果用戶不選中復選框,瀏覽器將不會送出查詢串,因此,在開始,應確保已經初始化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[]數組來處理(注意數組的長度必須事先確定,不可以動態改動數組的大?。?br />???? 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;
    ??? //頁面執行動作判斷
    ??? 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;
    ?????? }
    ?????? //獲取用戶業務服務
    ?????? 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>

    主站蜘蛛池模板: 亚洲精品欧洲精品| 亚洲2022国产成人精品无码区| 亚洲网址在线观看| 91禁漫免费进入| 亚洲高清日韩精品第一区| 久久免费视频99| 亚洲AV日韩AV永久无码免下载| 成人久久免费网站| 亚洲成熟丰满熟妇高潮XXXXX | 国产日韩AV免费无码一区二区| 激情97综合亚洲色婷婷五 | 亚洲国产精品线在线观看| 黄色网址在线免费| 久久亚洲AV成人出白浆无码国产| 久久久久国产免费| 亚洲成a人片在线观看播放| 免费H网站在线观看的| 亚洲精品9999久久久久无码| 国产老女人精品免费视频| 一级毛片免费播放试看60分钟| 亚洲中文字幕无码爆乳AV| h视频在线免费看| 亚洲AV无码一区二区一二区| 免费人妻无码不卡中文字幕18禁| 国产免费内射又粗又爽密桃视频| 国产成人无码综合亚洲日韩| 国产成人免费高清激情明星| 亚洲日韩久久综合中文字幕| 亚洲AⅤ无码一区二区三区在线| 中文字幕免费在线播放| 亚洲精品国产福利片| 国产精品四虎在线观看免费| 国产色无码精品视频免费| 国产精品高清视亚洲一区二区| 亚洲免费日韩无码系列 | 久久国内免费视频| 无码毛片一区二区三区视频免费播放| 亚洲国产成人一区二区精品区 | 亚洲一区二区三区在线视频| 最近新韩国日本免费观看| 亚洲av无码专区国产不乱码|