<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 屬性到底是干什么用的, 很早以前一直不太了解,今天突然又想到了這個問題,感覺不能再扔一邊不管了, 一定要解決它.


    這是在網上查到的關于attribute的解釋.
    1)應用前提,attribute只有在設置了name后才有意義。
    2)attribute可以實現對象的重用,即如果設置了attribute屬性,在創建actionform是,會先去查找相應的scope中是否有此對象,如果有,則重用,否則創建新的對象。
    3)當你將創建的acitonForm保存到相應的scope中時,你想用一個更有意義的名字來訪問它時,它就有意義了。

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


    在struts實例化actionform的時候,struts是根據attribute的值來查找并創建actionform,有兩種情況:如果已經存在,那么從內存中取回;如果第一次實例化,那么創建,并放入內存。

    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);
    ? ? ? ?}
    ??????................
    ????????................
    ???????
    ???????}
    ???????
    如果沒有配置attribute屬性的話, struts才會從name屬性里讀出要創建的formbean 的名字,并創建一下實例,看下邊的源代碼就知道了, 呵呵.


    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: 關于struts-config里action元素里的attribute屬性用途的理解  回復  更多評論   

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

    # re: 關于struts-config里action元素里的attribute屬性用途的理解  回復  更多評論   

    2008-10-20 22:30 by java Primer
    很好,比起亂七八糟的書籍資料,源代碼的學習才是王道
    主站蜘蛛池模板: 精品久久久久久久久亚洲偷窥女厕| 国产精品美女久久久免费| 暖暖免费高清日本一区二区三区| 久久亚洲精品无码av| 久久伊人亚洲AV无码网站| 久久大香伊焦在人线免费| 中文字幕亚洲情99在线| 亚洲午夜福利精品无码| 16女性下面无遮挡免费| 亚洲av无码一区二区三区在线播放| av在线亚洲欧洲日产一区二区| 日韩免费人妻AV无码专区蜜桃| 亚洲无码一区二区三区| 亚洲香蕉成人AV网站在线观看| 成年网站免费视频A在线双飞| 久香草视频在线观看免费| 亚洲精品成人久久| 亚洲А∨精品天堂在线| 国产成人免费午夜在线观看| 无码免费又爽又高潮喷水的视频 | 美女被免费喷白浆视频| 免费一区二区无码视频在线播放 | 国产成人青青热久免费精品 | 国产国产人免费人成免费视频 | 成年人免费网站在线观看| 国产免费内射又粗又爽密桃视频| 亚洲福利视频网址| 亚洲精品岛国片在线观看| 99久久这里只精品国产免费| A国产一区二区免费入口| 亚洲精品无AMM毛片| 久久久无码精品亚洲日韩按摩 | 无码人妻精品一二三区免费| 国色精品va在线观看免费视频 | 国产亚洲AV夜间福利香蕉149| 无人在线观看完整免费版视频| baoyu777永久免费视频| 国产亚洲午夜精品| 亚洲国产精品一区二区三区在线观看| 日韩va亚洲va欧洲va国产| 免费在线观看中文字幕|