Struts2【UI標籤、資料回顯、資源國際化】

yzf01發表於2021-09-09

tags: Struts2



http://www.blogjava.net/koradji/articles/307399.html

語法:

  • name定義標籤名,用於接收畫面上選中的核取方塊,故應與Action裡定義的屬性一致,且多為陣列;
  • list定義集合變數,用於輸出核取方塊到畫面上,一般在Action裡定義一個List或Map屬性;
  • listKey如果在Action裡定義的是一個List,則往往會在List裡定義一個Bean,它只有兩個屬性,其中一個(比如id)就在這裡設定;
    • 如果在Action裡定義的是一個Map,則Map的key就在這裡設定;
  • listValue如果在Action裡定義的是一個List,則往往會在List裡定義一個Bean,它只有兩個屬性,另外一個(比如name)就在這裡設定
    • 如果在Action裡定義的是一個Map,則Map的value就在這裡設定;
  • value用於回顯畫面上被選中的核取方塊,假如畫面有輸入檢查,如果有錯則返回原畫面並顯示出錯資訊,這時候就需要使用它。
    • 一般把它設成和name一致就可以了。

例子:

查詢了所有的角色,得到使用者與角色的所有id了。把封裝到陣列中。


    public String editUI() {

        //把所有的角色查詢出來,帶過去給JSP頁面顯示
        ActionContext.getContext().getContextMap().put("roleList", roleServiceImpl.findObjects());

        //外邊已經傳了id過來了,我們要找到id對應的User
        if (user != null &&user.getId() != null  ) {
            //直接獲取出來,後面JSP會根據User有getter就能讀取對應的資訊!
            user = userServiceImpl.findObjectById(user.getId());

            //透過使用者的id得到所擁有UserRole
            List roles = userServiceImpl.findRoleById(user.getId());
            //把使用者擁有角色的id填充到陣列中,陣列最後回顯到JSP頁面
            int i=0;
            userRoleIds =  new String[roles.size()];
            for (UserRole role : roles) {
                userRoleIds[i++] = role.getUserRoleId().getRole().getRoleId();
            }

        }
        return "editUI";
    }

name值的是陣列,可以用於自動回顯。Action得到角色的id也是透過它


  
資源國際化

我們在學JSTL標籤的時候就涉及到了資源國際化,,,但是呢,在JSP的章節我並沒有寫博文來講解怎麼弄....一方面感覺JSP的資源國際化好麻煩,另一方面是感覺用的地方很少.....因此就沒有深入去了解它...

今天呢,學習到了Struts2的資源國際化了。重新看回JSP資源國際化的步驟,再對比一下Struts的資源國際化

Servlet和Struts資源國際化區別

在Servlet寫資源國際化的步驟:

  • 寫資原始檔

    • 基礎名.properties【預設】
    • 基礎名語言簡稱 國家簡稱.properties
  • 讀取配置檔案
    • jstl提供的格式化與國際化標籤庫。

在Struts2寫資源國際化的步驟:

  • 寫資原始檔
    • 基礎名.properties【預設】
    • 基礎名語言簡稱 國家簡稱.properties
  • 讀取配置檔案再使用
    • struts標籤獲取資原始檔內容

區別:

Struts2載入資原始檔更加簡單,透過常量配置即可!提供的Struts標籤更簡單使用


資源國際化Demo

下面就使用Struts來寫一個資源國際化的Demo....

寫資原始檔

值得注意的是:在IDEA下寫properties資原始檔,如果涉及到中文,預設是不會幫我們編碼的。它是不像eclipse的...因此需要我們手動去設定的......設定的教程在我的IDEA博文中有...如果出現了這個問題,那就去IDEA博文下找唄。。。

圖片描述

在Struts中使用常量載入資原始檔

我們直接在Struts中使用contant節點來載入我們自己寫的配置檔案。值得注意的是:value的值是檔案的全名(也就是說,如果有包,就把包名寫上)....並且,不需要寫上字尾...

 

圖片描述


Struts標籤使用國際化

name的值是配置檔案中配置的資訊,寫上就行了!



    <text name="title"></text>






測試

注意,title已經替換成了中文了!!

圖片描述

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2334/viewspace-2800005/,如需轉載,請註明出處,否則將追究法律責任。

相關文章