程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Struts核心標簽

Struts核心標簽

編輯:關於JAVA

常用的Struts標簽庫有以下五大類:

    1.Html Tag:

    用來創建能夠和Struts框架以及其它相應的HTML標簽交互的Html輸入表單;

    如:<html:form></html:form>,<html:text/>,<html:passWord/>,<html:radio/>,<html:checkbox/>,<Htmlmultibox>

    2.Bean Tag

    該標簽庫包含的標簽可以用來創建bean、訪問bean和訪問bean的屬性。

    如:<bean:write/>:用於將bean的屬性輸送到JSP頁面,<bean:define/>定義一個新的bean

    3.Logic Tag

    該標簽庫包含的標簽可以用來進行邏輯判斷、集合迭代和流程控制。

    如:<logic:iterate/>:用來循環迭代,<logic:eaual/>:用來進行邏輯判斷

    4.Nested:增強對其他Struts標簽的嵌套使用能力

    該標簽庫建立在前三個標簽庫的基礎上,具有前三個標簽庫的所有功能,只是允許標簽間的嵌套。

    5.Template Tag

    隨著Titles框架包的出現,此標記已開始減少使用

    下面介紹幾個最常用的標簽:

    <Html:check box/>一般用於一個選項的復選框

    <Html:multibox/>一般用於多個選項的復選框

    <bean:write name="user" property="username"/>等同於EL表達示: ${user.username}

    <bean:define id="inter" name="user" property="interest" type="Java.lang.String"/>定義一個bean

    <bean:message key=" " arg0=" "/> key 定義在資源文件中,args0[1,2]為參數

    <logic:iterate name="list" id="user"> 等同於JSTL的:<c:foeach item= ${list} var="user"/>

    <logic:equal name="user" property="sex" value="0"/>等同於JSTL的:<c:when test=""/>

    <logic:empty />標簽是用來判斷是否為空的。如果為空,該標簽體中嵌入的內容就會被處理

    <logic:empty name="listForm" property = "persons"> <div>集合persons為空!</div> </logic:empty>

    1.下面給一個表單的完整代碼:

<body>
    <center>
        <Html:form action="/user">
        用戶名:<Html:text property="user.username"></Html:text><p/>
        密碼:<Html:text property="user.pwd"></Html:text><p/>
        性別:<Html:radio property="user.sex" value="男">男</Html:radio>
            <Html:radio property="user.sex" value="女">女</Html:radio><p/>
        城市:<Html:select property="user.city">
            <Html:option value="">請選擇</Html:option>
            <Html:option value="武漢">武漢</Html:option>
            <Html:option value="上海">上海</Html:option>
            <Html:option value="北京">北京</Html:option>
        </Html:select><p/>
        愛好:<Html:multibox property="interest" value="看書"/>看書
            <Html:multibox property="interest" value="游戲"/>
游戲
            <Html:multibox property="interest" value="睡覺"/>睡覺<p/>

            <Html:submit/><Html:cancel/>
        </Html:form>
    </center>
    </body>

    使用html標簽作為表單輸入,可以方便的使用驗證框架即:<Html:errors property="username">

    2.下面給一個顯示數據的代碼:

<table align="center" border="1" width="600">
        <caption>用戶注冊信息</caption>
        <tr>
            <td>用戶名</td>
            <td>密碼</td>
            <td>性別</td>
            <td>城市</td>
            <td>愛好</td>
            <td colspan="2" align="center">操作</td>
        </tr>
        <logic:iterate name="list" id="user">
        <tr>
            <td><bean:write name="user" property="username"/></td>
            <td><bean:write name="user" property="pwd"/></td>
            <td><bean:write name="user" property="sex"/></td>
            <td><bean:write name="user" property="city"/></td>
            <td>
                <bean:define id="interest" name="user" property="interest" type="Java.lang.String"></bean:define>
                <logic:iterate id="inter" collection="<%=StringUtil.stringChange2(interest)%>">
                     ${inter}
                </logic:iterate>
            </td>
            <td><a href="del.do?userid= ${user.userid}">刪除</a></td>
            <td><a href="upd.do?userid= ${user.userid}">修改</a></td>
        </tr>
        </logic:iterate>
    </table>

    作為顯示數據,Struts標簽並不比JStl與EL方便,因此,本人更習慣用後者

    其實Struts標簽的好處,並不是上面這些,而是它可利用ActionForm來填充數據

    比如我們在做頁面數據修改的時候,會讓當前頁面數據顯示到顯示修改頁面,這樣利於客戶端修改

    以前我們這樣做的:根據id從數據庫查出,然後使用Html的value屬性填充,現在有了Struts標簽,就不需要那麼麻煩了

    直接在Action裡填充ActionForm的數據就搞定了:

public ActionForward upd(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) 
{
        UserForm userForm =
 (UserForm) form;
        int userid = Integer.parseInt(request.getParameter("userid"
));
        UserInfo user =
 biz.findUser(userid);
        String[]interest =
 StringUtil.stringChange2(user.getInterest());
        //將用戶信息填充到ActionForm

        userForm.setUser(user);
        userForm.setInterest(interest);
        return mapping.findForward("upd"
);
    }

    然後在修改頁面顯示,請往下看:

<Html:form action="/doupd">
        用戶名:<Html:text property="user.username"></Html:text><p/>
        密碼:<Html:text property="user.pwd"></Html:text><p/>
        性別:<Html:radio property="user.sex" value="男">男</Html:radio>
            <Html:radio property="user.sex" value="女">女</Html:radio><p/>
        城市:<Html:select property="user.city">
            <Html:option value="">請選擇</Html:option>
            <Html:option value="武漢">武漢</Html:option>
            <Html:option value="上海">上海</Html:option>
            <Html:option value="北京">北京</Html:option>
        </Html:select><p/>
        愛好:<Html:multibox property="interest" value="看書"/>看書
            <Html:multibox property="interest" value="游戲"/>
游戲
            <Html:multibox property="interest" value="睡覺"/>睡覺<p/>

            <Html:submit value="修改"/>
        </Html:form>

    怎麼樣,簡單方便吧,其實Struts標簽還是有它的好處的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved