成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Struts2【UI標(biāo)簽、數(shù)據(jù)回顯、資源國(guó)際化】

graf / 874人閱讀

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

Struts2UI標(biāo)簽

Sturts2為了簡(jiǎn)化我們的開發(fā),也為我們提供了UI標(biāo)簽...也就是顯示頁(yè)面的標(biāo)簽.....

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

還有一點(diǎn)是:我們?cè)趯懢W(wǎng)頁(yè)的時(shí)候,肯定是需要使用div+css的頁(yè)面布局的。使用Struts2UI標(biāo)簽也沒(méi)法干了....因此,除了有必要的話,才去使用Struts2UI標(biāo)簽

簡(jiǎn)單使用Struts2UI標(biāo)簽
<%--我們發(fā)現(xiàn),Struts2UI標(biāo)簽用起來(lái)和HTML是差不多的--%>




    <%--輸入框數(shù)據(jù),lable就相當(dāng)于我們以前外邊寫的數(shù)據(jù)--%>
    

    <%--密碼框--%>
    

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


當(dāng)我們查看源文件的時(shí)候,發(fā)現(xiàn)Struts2UI標(biāo)簽為我們自動(dòng)加入了很多的標(biāo)簽

設(shè)置主題

上面已經(jīng)說(shuō)了,Struts2UI標(biāo)簽為我們自動(dòng)加入了很多的標(biāo)簽,那有的時(shí)候,我們不想要,或者換一種風(fēng)格的話,怎么辦???

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

當(dāng)我們?cè)诒韱沃?strong>設(shè)置theme屬性為simple之后...我們發(fā)現(xiàn)源文件Struts2自動(dòng)為我們添加的標(biāo)簽全沒(méi)了。

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

  
數(shù)據(jù)回顯

我們對(duì)數(shù)據(jù)回顯也不會(huì)陌生,在使用EL表達(dá)式的時(shí)候就已經(jīng)用過(guò)了數(shù)據(jù)回顯了....那為啥數(shù)據(jù)回顯放在Struts2標(biāo)簽這里講解呢???因?yàn)镾truts2也提供了數(shù)據(jù)回顯的支持,并且,使用數(shù)據(jù)回顯必須要使用Struts2的標(biāo)簽...

按照正常思路寫數(shù)據(jù)回顯

在Struts中按照正常思路寫數(shù)據(jù)回顯是這樣的:

把數(shù)據(jù)放到request域中存儲(chǔ),跳轉(zhuǎn)到對(duì)應(yīng)的JSP頁(yè)面...

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

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

        return SUCCESS;
    }

JSP頁(yè)面使用Struts2標(biāo)簽,設(shè)置value屬性就可以進(jìn)行數(shù)據(jù)回顯了




    <%--輸入框數(shù)據(jù),lable就相當(dāng)于我們以前外邊寫的數(shù)據(jù)--%>
    

    <%--密碼框--%>
    

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

效果:

Struts2提供的數(shù)據(jù)回顯

其實(shí),上面的代碼已經(jīng)實(shí)現(xiàn)了數(shù)據(jù)回顯,但Struts2提供了一個(gè)更巧妙的方法

也就是說(shuō),Struts2可以直接在name中就可以實(shí)現(xiàn)數(shù)據(jù)回顯了....要做的是:

我們回顯的數(shù)據(jù)在根元素下的,也就是保存在CompoundRoot中的數(shù)據(jù)【保存在根元素的數(shù)據(jù)不用使用#號(hào)就可以獲取】

因此,我們把想要回顯的數(shù)據(jù)放在CompoundRoot下

直接放在值棧的數(shù)據(jù)就是根元素?cái)?shù)據(jù)

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

在JSP就可以直接獲取了

  

效果:

Struts2標(biāo)簽:checkboxlist

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

語(yǔ)法:

  

name定義標(biāo)簽名,用于接收畫面上選中的復(fù)選框,故應(yīng)與Action里定義的屬性一致,且多為數(shù)組;

list定義集合變量,用于輸出復(fù)選框到畫面上,一般在Action里定義一個(gè)List或Map屬性;

listKey如果在Action里定義的是一個(gè)List,則往往會(huì)在List里定義一個(gè)Bean,它只有兩個(gè)屬性,其中一個(gè)(比如id)就在這里設(shè)置;

如果在Action里定義的是一個(gè)Map,則Map的key就在這里設(shè)置;

listValue如果在Action里定義的是一個(gè)List,則往往會(huì)在List里定義一個(gè)Bean,它只有兩個(gè)屬性,另外一個(gè)(比如name)就在這里設(shè)置;

如果在Action里定義的是一個(gè)Map,則Map的value就在這里設(shè)置;

value用于回顯畫面上被選中的復(fù)選框,假如畫面有輸入檢查,如果有錯(cuò)則返回原畫面并顯示出錯(cuò)信息,這時(shí)候就需要使用它。

一般把它設(shè)成和name一致就可以了。

例子:

查詢了所有的角色,得到用戶與角色的所有id了。把封裝到數(shù)組中。

    public String editUI() {

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

        //外邊已經(jīng)傳了id過(guò)來(lái)了,我們要找到id對(duì)應(yīng)的User
        if (user != null &&user.getId() != null  ) {
            //直接獲取出來(lái),后面JSP會(huì)根據(jù)User有g(shù)etter就能讀取對(duì)應(yīng)的信息!
            user = userServiceImpl.findObjectById(user.getId());

            //通過(guò)用戶的id得到所擁有UserRole
            List roles = userServiceImpl.findRoleById(user.getId());
            //把用戶擁有角色的id填充到數(shù)組中,數(shù)組最后回顯到JSP頁(yè)面
            int i=0;
            userRoleIds =  new String[roles.size()];
            for (UserRole role : roles) {
                userRoleIds[i++] = role.getUserRoleId().getRole().getRoleId();
            }

        }
        return "editUI";
    }

name值的是數(shù)組,可以用于自動(dòng)回顯。Action得到角色的id也是通過(guò)它

  
資源國(guó)際化

我們?cè)趯W(xué)JSTL標(biāo)簽的時(shí)候就涉及到了資源國(guó)際化,,,但是呢,在JSP的章節(jié)我并沒(méi)有寫博文來(lái)講解怎么弄....一方面感覺(jué)JSP的資源國(guó)際化好麻煩,另一方面是感覺(jué)用的地方很少.....因此就沒(méi)有深入去了解它...

今天呢,學(xué)習(xí)到了Struts2的資源國(guó)際化了。重新看回JSP資源國(guó)際化的步驟,再對(duì)比一下Struts的資源國(guó)際化

Servlet和Struts資源國(guó)際化區(qū)別

在Servlet寫資源國(guó)際化的步驟:

寫資源文件

基礎(chǔ)名.properties【默認(rèn)】

基礎(chǔ)名_語(yǔ)言簡(jiǎn)稱_ 國(guó)家簡(jiǎn)稱.properties

讀取配置文件

jstl提供的格式化與國(guó)際化標(biāo)簽庫(kù)。

在Struts2寫資源國(guó)際化的步驟:

寫資源文件

基礎(chǔ)名.properties【默認(rèn)】

基礎(chǔ)名_語(yǔ)言簡(jiǎn)稱_ 國(guó)家簡(jiǎn)稱.properties

讀取配置文件再使用

struts標(biāo)簽獲取資源文件內(nèi)容

區(qū)別:

Struts2加載資源文件更加簡(jiǎn)單,通過(guò)常量配置即可!提供的Struts標(biāo)簽更簡(jiǎn)單使用

資源國(guó)際化Demo

下面就使用Struts來(lái)寫一個(gè)資源國(guó)際化的Demo....

寫資源文件

值得注意的是:在IDEA下寫properties資源文件,如果涉及到中文,默認(rèn)是不會(huì)幫我們編碼的。它是不像eclipse的...因此需要我們手動(dòng)去設(shè)置的......設(shè)置的教程在我的IDEA博文中有...如果出現(xiàn)了這個(gè)問(wèn)題,那就去IDEA博文下找唄。。。

在Struts中使用常量加載資源文件

我們直接在Struts中使用contant節(jié)點(diǎn)來(lái)加載我們自己寫的配置文件。值得注意的是:value的值是文件的全名(也就是說(shuō),如果有包,就把包名寫上)....并且,不需要寫上后綴...

 

Struts標(biāo)簽使用國(guó)際化

name的值是配置文件中配置的信息,寫上就行了!


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






測(cè)試

注意,title已經(jīng)替換成了中文了??!

如果文章有錯(cuò)的地方歡迎指正,大家互相交流。習(xí)慣在微信看技術(shù)文章,想要獲取更多的Java資源的同學(xué),可以關(guān)注微信公眾號(hào):Java3y

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68751.html

相關(guān)文章

  • Java3y文章目錄導(dǎo)航

    摘要:前言由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時(shí)間才會(huì)更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號(hào):Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡(jiǎn)單 注解就這么簡(jiǎn)單 Druid數(shù)據(jù)庫(kù)連接池...

    KevinYan 評(píng)論0 收藏0
  • 納稅服務(wù)系統(tǒng)【總結(jié)】

    摘要:要是使用到日歷的話,我們想到使用這個(gè)日歷類上面僅僅是我個(gè)人總結(jié)的要點(diǎn),如果有錯(cuò)誤的地方還請(qǐng)大家給我指正。 納稅服務(wù)系統(tǒng)總結(jié) 納稅服務(wù)系統(tǒng)是我第一個(gè)做得比較大的項(xiàng)目(不同于javaWeb小項(xiàng)目),該項(xiàng)目系統(tǒng)來(lái)源于傳智Java32期,十天的視頻課程(想要視頻的同學(xué)關(guān)注我的公眾號(hào)就可以直接獲取了) 我跟著練習(xí)一步一步完成需求,才發(fā)覺(jué)原來(lái)Java是這樣用來(lái)做網(wǎng)站的,Java有那么多的類庫(kù),頁(yè)面...

    ispring 評(píng)論0 收藏0
  • Struts2【攔截器】就是這么簡(jiǎn)單

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

    chanjarster 評(píng)論0 收藏0
  • SpringMVC【參數(shù)綁定、數(shù)據(jù)回顯、文件上傳】

    摘要:那我們就不用在每一個(gè)方法通過(guò)將數(shù)據(jù)傳到頁(yè)面。還能夠配置該參數(shù)是否是必須的。方法的返回值有種重定向轉(zhuǎn)發(fā)內(nèi)部就是將數(shù)據(jù)綁定到域?qū)ο笾械?。注解能夠?qū)?shù)據(jù)綁定到中也就是中,如果經(jīng)常需要綁定到中的數(shù)據(jù),抽取成方法來(lái)使用這個(gè)注解還是不錯(cuò)的。 前言 本文主要講解的知識(shí)點(diǎn)如下: 參數(shù)綁定 數(shù)據(jù)回顯 文件上傳 參數(shù)綁定 我們?cè)贑ontroller使用方法參數(shù)接收值,就是把web端的值給接收到Cont...

    Flink_China 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<