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

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

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

    posts - 13, comments - 7, trackbacks - 0, articles - 0
    action mapping中的attribute 屬性到底是干什么用的, 很早以前一直不太了解,今天突然又想到了這個(gè)問(wèn)題,感覺(jué)不能再扔一邊不管了, 一定要解決它.


    這是在網(wǎng)上查到的關(guān)于attribute的解釋.
    1)應(yīng)用前提,attribute只有在設(shè)置了name后才有意義。
    2)attribute可以實(shí)現(xiàn)對(duì)象的重用,即如果設(shè)置了attribute屬性,在創(chuàng)建actionform是,會(huì)先去查找相應(yīng)的scope中是否有此對(duì)象,如果有,則重用,否則創(chuàng)建新的對(duì)象。
    3)當(dāng)你將創(chuàng)建的acitonForm保存到相應(yīng)的scope中時(shí),你想用一個(gè)更有意義的名字來(lái)訪問(wèn)它時(shí),它就有意義了。

    可是,看到"一個(gè)更有意義的名字的時(shí)候", 我好像有點(diǎn)理解了
    <action
    attribute="newLoginForm"
    name="loginForm"
    type="loginAction"
    scope="request"
    path="/login">


    在struts實(shí)例化actionform的時(shí)候,struts是根據(jù)attribute的值來(lái)查找并創(chuàng)建actionform,有兩種情況:如果已經(jīng)存在,那么從內(nèi)存中取回;如果第一次實(shí)例化,那么創(chuàng)建,并放入內(nèi)存。

    org.apache.struts.util.RequestUtils中的源代碼

    ???public static Actionform createActionform(
    ? ? ? ?HttpServletRequest request,
    ? ? ? ?ActionMapping mapping,
    ? ? ? ?ModuleConfig moduleConfig,
    ? ? ? ?ActionServlet servlet) {
    ?????? ............
    ??????............

    ???????String attribute = mapping.getAttribute();
    ??????......
    ???????Actionform instance = null;
    ? ? ? ?HttpSession session = null;

    ???????if ("request".equals(mapping.getScope())) {
    ? ? ? ? ? ?instance = (Actionform) request.getAttribute(attribute);
    ? ? ? ?} else {
    ? ? ? ? ? ?session = request.getSession();
    ? ? ? ? ? ?instance = (Actionform) session.getAttribute(attribute);
    ? ? ? ?}
    ??????................
    ????????................
    ???????
    ???????}
    ???????
    如果沒(méi)有配置attribute屬性的話, struts才會(huì)從name屬性里讀出要?jiǎng)?chuàng)建的formbean 的名字,并創(chuàng)建一下實(shí)例,看下邊的源代碼就知道了, 呵呵.


    org.apache.struts.config.ActionConfig

    ???protected String attribute = null;

    ? ?public String getAttribute() {
    ?//就是這里了.
    ???????if (this.attribute == null) {
    ? ? ? ? ? ?return (this.name);
    ? ? ? ?} else {
    ? ? ? ? ? ?return (this.attribute);
    ? ? ? ?}
    ? ?}

    ? ?public void setAttribute(String attribute) {
    ? ? ? ?if (configured) {
    ? ? ? ? ? ?throw new IllegalStateException("Configuration is frozen");
    ? ? ? ?}
    ? ? ? ?this.attribute = attribute;
    ? ?}

    Feedback

    # re: 關(guān)于struts-config里action元素里的attribute屬性用途的理解  回復(fù)  更多評(píng)論   

    2008-08-07 16:58 by chenhong
    好厲害!

    # re: 關(guān)于struts-config里action元素里的attribute屬性用途的理解  回復(fù)  更多評(píng)論   

    2008-10-20 22:30 by java Primer
    很好,比起亂七八糟的書(shū)籍資料,源代碼的學(xué)習(xí)才是王道
    主站蜘蛛池模板: 亚洲熟女一区二区三区| 国产一区二区三区免费在线观看| 国产亚洲一区区二区在线| 久久久久国色AV免费观看| 四虎国产精品免费视| 牛牛在线精品观看免费正| 亚洲国产精品综合久久一线| 猫咪www免费人成网站| 亚洲一本大道无码av天堂| 国产福利电影一区二区三区,免费久久久久久久精| 香蕉免费看一区二区三区| 亚洲午夜国产精品无码 | 日本二区免费一片黄2019| 亚洲人成未满十八禁网站| 国产精品视频免费一区二区三区| 久久久久久亚洲av无码蜜芽| 亚洲精品国产综合久久一线| 国产特黄一级一片免费 | 亚洲国产成人精品无码区在线秒播 | 精品免费tv久久久久久久| 亚洲一区综合在线播放| 永久免费的网站在线观看| 亚洲精品无码成人| 亚洲综合色区在线观看| 另类免费视频一区二区在线观看 | 18女人腿打开无遮掩免费| 亚洲乱码在线观看| 亚洲人成无码网WWW| 免费无码中文字幕A级毛片| 国产亚洲中文日本不卡二区| 四虎影在线永久免费四虎地址8848aa | 亚洲人成色7777在线观看| 91在线老王精品免费播放| 亚洲人成网站18禁止| 亚洲色偷偷狠狠综合网| 91成人免费观看| 男女猛烈无遮掩视频免费软件 | 亚洲一级片内射网站在线观看| 久久99精品免费视频| 亚洲国产无线乱码在线观看| 亚洲欧洲日产国码av系列天堂|