国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Struts2【UI標簽、數據回顯、資源國際化】

graf / 866人閱讀

摘要:值得注意的是的值是文件的全名也就是說,如果有包,就把包名寫上并且,不需要寫上后綴標簽使用國際化的值是配置文件中配置的信息,寫上就行了登陸測試注意,已經替換成了中文了如果文章有錯的地方歡迎指正,大家互相交流。

Struts2UI標簽

Sturts2為了簡化我們的開發,也為我們提供了UI標簽...也就是顯示頁面的標簽.....

但是呢,Struts2是服務端的框架,因此使用頁面的標簽是需要在服務器端解析然后再被瀏覽器解析,最后才顯示在頁面上的。因此,它的性能是不夠HTML標簽好的...HTML直接就能夠被瀏覽器解析

還有一點是:我們在寫網頁的時候,肯定是需要使用div+css的頁面布局的。使用Struts2UI標簽也沒法干了....因此,除了有必要的話,才去使用Struts2UI標簽

簡單使用Struts2UI標簽
<%--我們發現,Struts2UI標簽用起來和HTML是差不多的--%>




    <%--輸入框數據,lable就相當于我們以前外邊寫的數據--%>
    

    <%--密碼框--%>
    

    <%--提交按鈕--%>
    


當我們查看源文件的時候,發現Struts2UI標簽為我們自動加入了很多的標簽

設置主題

上面已經說了,Struts2UI標簽為我們自動加入了很多的標簽,那有的時候,我們不想要,或者換一種風格的話,怎么辦???

Struts2UI標簽也為我們提供了“主題”這樣的功能...

當我們在表單中設置theme屬性為simple之后...我們發現源文件Struts2自動為我們添加的標簽全沒了。

如果我們想整個項目都是使用simple為主題的話,我們可以在配置文件中配置!

  
數據回顯

我們對數據回顯也不會陌生,在使用EL表達式的時候就已經用過了數據回顯了....那為啥數據回顯放在Struts2標簽這里講解呢???因為Struts2也提供了數據回顯的支持,并且,使用數據回顯必須要使用Struts2的標簽...

按照正常思路寫數據回顯

在Struts中按照正常思路寫數據回顯是這樣的:

把數據放到request域中存儲,跳轉到對應的JSP頁面...

    public String login() {
        //把數據存儲到域中
        Map request = ActionContext.getContext().getContextMap();

        request.put("username", "zhongfucheng");
        request.put("password", "123");

        return SUCCESS;
    }

JSP頁面使用Struts2標簽,設置value屬性就可以進行數據回顯了




    <%--輸入框數據,lable就相當于我們以前外邊寫的數據--%>
    

    <%--密碼框--%>
    

    <%--提交按鈕--%>
    

效果:

Struts2提供的數據回顯

其實,上面的代碼已經實現了數據回顯,但Struts2提供了一個更巧妙的方法

也就是說,Struts2可以直接在name中就可以實現數據回顯了....要做的是:

我們回顯的數據在根元素下的,也就是保存在CompoundRoot中的數據【保存在根元素的數據不用使用#號就可以獲取】

因此,我們把想要回顯的數據放在CompoundRoot下

直接放在值棧的數據就是根元素數據

        //得到值棧對象
        ValueStack valueStack = ActionContext.getContext().getValueStack();
        valueStack.set("username","zhongfucheng");

在JSP就可以直接獲取了

  

效果:

Struts2標簽:checkboxlist

參考自博文:http://www.blogjava.net/korad...

語法:

  

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的值是配置文件中配置的信息,寫上就行了!


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






測試

注意,title已經替換成了中文了?。?/p>

如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章,想要獲取更多的Java資源的同學,可以關注微信公眾號:Java3y

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68751.html

相關文章

  • Java3y文章目錄導航

    摘要:前言由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 前言 由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導航哦~想要獲取最新原創的技術文章歡迎關注我的公眾號:Java3y Java3y文章目錄導航 Java基礎 泛型就這么簡單 注解就這么簡單 Druid數據庫連接池...

    KevinYan 評論0 收藏0
  • 納稅服務系統【總結】

    摘要:要是使用到日歷的話,我們想到使用這個日歷類上面僅僅是我個人總結的要點,如果有錯誤的地方還請大家給我指正。 納稅服務系統總結 納稅服務系統是我第一個做得比較大的項目(不同于javaWeb小項目),該項目系統來源于傳智Java32期,十天的視頻課程(想要視頻的同學關注我的公眾號就可以直接獲取了) 我跟著練習一步一步完成需求,才發覺原來Java是這樣用來做網站的,Java有那么多的類庫,頁面...

    ispring 評論0 收藏0
  • Struts2【攔截器】就是這么簡單

    摘要:文件上傳通過這個攔截器攔截器的設計就是基于組件設計的應用再次回顧攔截器基礎在開始講解的時候已經說明過了這個文件,它定義了的所有攔截器。由于我們配置了自定義攔截器,那么默認的攔截器棧是不會執行的。 什么是攔截器 攔截器Interceptor.....攔截器是Struts的概念,它與過濾器是類似的...可以近似于看作是過濾器 為什么我們要使用攔截器 前面在介紹Struts的時候已經講解過了...

    chanjarster 評論0 收藏0
  • SpringMVC【參數綁定、數據回顯、文件上傳】

    摘要:那我們就不用在每一個方法通過將數據傳到頁面。還能夠配置該參數是否是必須的。方法的返回值有種重定向轉發內部就是將數據綁定到域對象中的。注解能夠將數據綁定到中也就是中,如果經常需要綁定到中的數據,抽取成方法來使用這個注解還是不錯的。 前言 本文主要講解的知識點如下: 參數綁定 數據回顯 文件上傳 參數綁定 我們在Controller使用方法參數接收值,就是把web端的值給接收到Cont...

    Flink_China 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<