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

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

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

    J2EE劍俠行

    直覺我的J2EE應(yīng)用生涯,打造我心中的一把利劍。

    常用鏈接

    統(tǒng)計(jì)

    技術(shù)鏈接

    最新評(píng)論

    struts標(biāo)簽,請(qǐng)你走開(系列一)

    在項(xiàng)目開發(fā)的很多時(shí)候,用戶需要更友好,更容易理解的操作界面,而為了能夠達(dá)到這種表現(xiàn)界面,struts標(biāo)簽顯得力不從心,本人經(jīng)過幾個(gè)項(xiàng)目的開發(fā)當(dāng)中 逐漸的擯棄了struts標(biāo)簽,而由JSTL來做為JSP頁面的表達(dá)者。
    struts標(biāo)簽之死穴一 不支持嵌套
    看看這種常見的需求吧。一個(gè)用戶隸屬于一個(gè)職能部門,比如
    項(xiàng)目要求 職能部門有五個(gè)(亂寫的)
    1、企劃部
    2、網(wǎng)絡(luò)集成部
    3、行政部
    4、營(yíng)銷部
    5、產(chǎn)品部
    項(xiàng)目要求 一共有二個(gè)員工
    1、張三 隸屬于行政部
    2、李四 隸屬于營(yíng)銷部
    而你想把張三和李四都列表出來,顯示為如下:
    姓名 部門名稱
    張三 行政部
    李四 營(yíng)銷部
    而且還需要用戶的列表鏈接到修改頁面當(dāng)中(假如只修改部門)應(yīng)該如何做呢。
    在使用struts標(biāo)簽是很難做到的,除非你非常不在意內(nèi)存的使用(亂寫技術(shù)性代碼)
    看看JSTL是如何做的吧。
    從STRUTS的ACTION當(dāng)中加載兩個(gè)對(duì)象

    List?GetAllDept? = ?UserDAO.GetAllDept(); // 取得所有部門

    List?GetALLUser?
    = ?UserDAO.GetAllUser(); // 取得所有用戶

    request.setAttribute(
    " View_Dept " ,?GetAllDept);

    request.setAttribute(
    " View_User " ,?GetALLUser);
    在頁面當(dāng)中加入對(duì)JSTL的引用
    <%@?taglib?uri="http://java.sun.com/jsp/jstl/core"?prefix="c"%>

    然后寫代碼如下:
    <table>

    <tr>

    <td?align="center">

    <a?href="User.do?method=EditUser&UserId=<c:out?value='${View_User.UserId}'/>">

    <c:out?value="${View_User.UserName}"?/>?</a>

    </td>

    <td?align="center">

    <c:forEach?items="${View_Dept}"?var="View_Dept">

    <c:if?test="${View_User.Dept.DeptId==View_Dept.DeptId}">

    <c:out?value="${View_Dept.DeptName}"?/>

    </c:if>????????????????????????????

    </c:forEach>

    </td>

    </tr>

    </table>

    其中View_User.Dept.DeptId表示USER表與DEPT表的一個(gè)關(guān)系(外鍵)
    你就可以看到所顯示的列表了。

    還有如果在修改用戶時(shí),則也與上面的差不多,首先在ACTION當(dāng)中加入:

    String?ModifyUserId?=?request.getParameter("GroupUserId");

    if?(ModifyUserId?==?null?&&?ModifyUserId.equals(""))?{

    //這是出錯(cuò)處理

    request.setAttribute(
    "UserMsg",?"User.ValidateUser");

    return?mapping.findForward("Fail");

    }

    DynaValidatorForm?UserActionForm?
    =?(DynaValidatorForm)?form;

    User?user?
    =?UserDAO.GetUser(ModifyUserId);????????

    List?GetAllDept?
    =?UserDAO.GetAllDept();//取得所有部門

    request.setAttribute(
    "View_Dept",?GetAllDept);

    UserActionForm.set(
    "User",?User);
    然后頁面當(dāng)中顯示如下(部門為L(zhǎng)ISTBOX),例子當(dāng)中只顯示部門
    <html:select?property="DeptAsString">????????????

    <c:forEach?items="${View_Dept}"?var="View_Dept">????????

    <c:choose>????????????????????????

    <c:when?test="${User.Dept.DeptId==View_Dept.DeptId}">

    <option????value="<c:out?value='${View_Dept.DeptId}'?/>"selected>????

    <c:out?value="${View_Dept.DeptName}"?/>????????????

    </option>????????????????????????????

    </c:when>????????????????????????????

    <c:otherwise>????????????????????????

    <option?value="<c:out?value='${View_Dept.DeptId}'?/>">????????

    <c:out?value="${View_Dept.DeptName}"?/></option>????????

    </c:otherwise>????????????????????????

    </c:choose>

    </c:forEach>

    </html:select>

    可以看到HTML的SELECT有一個(gè)DeptAsString,你可以在FORM當(dāng)中指定一個(gè)STRING的FORM屬性。
    這樣用戶的要求就可以完成了。
    本次只說明方法,而代碼沒有經(jīng)過測(cè)試。希望大家多多觀注我的BLOG,下一次將臭罵ACTIONFROM不支持的DATE類型及解決方法。

    posted on 2006-09-25 16:36 @家軍 閱讀(448) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 67194熟妇在线永久免费观看| 久久久久亚洲av无码专区喷水| 国产又大又粗又长免费视频| 精品乱子伦一区二区三区高清免费播放| 亚洲国产精品yw在线观看| 亚洲人成伊人成综合网久久久| 国产精品四虎在线观看免费| 国产精品成人观看视频免费| 免费在线观影网站| 一级做a爰片久久毛片免费陪 | 亚洲av无码专区在线电影| 亚洲精品乱码久久久久久下载| 亚洲日韩av无码| 免费人成无码大片在线观看| 性做久久久久免费看| 国产成人免费爽爽爽视频| 国产精品成人观看视频免费| 最近中文字幕高清免费中文字幕mv | 一级毛片在线免费视频| 国产亚洲精品美女久久久久久下载| 亚洲香蕉在线观看| 亚洲妇女水蜜桃av网网站| 亚洲电影中文字幕| 精品亚洲麻豆1区2区3区| 久久久久亚洲av无码专区蜜芽| 国产精品亚洲成在人线| 亚洲人精品午夜射精日韩| 亚洲老妈激情一区二区三区| 国产国拍精品亚洲AV片| 亚洲乱码精品久久久久..| 精品亚洲综合在线第一区| 亚洲日本va中文字幕久久| 亚洲高清国产拍精品26U| 亚洲今日精彩视频| 1区1区3区4区产品亚洲| 亚洲福利视频网站| 亚洲av无码片在线观看| 亚洲人成色在线观看| 成人精品国产亚洲欧洲| 一区二区三区在线观看免费| 伊人免费在线观看高清版|