坚持就是胜利。

                    --WH

一、s标签

    在struts-2.3.15.1/docs/WW/docs/tag-reference.html下,就有着struts2所有标签的参考文献,只能看看其中比较常用的标签。其他的以后遇到了在看参考文献即可。

    通用标签,control Tags 和 DataTags,下面用方框圈起来的就是我们需要了解的

            

        1.1、if、elseif、else 标签。

          这个很简单,流程控制的标签,跟我们平常写的if语句基本上类似。test用来编写条件的

          

        1.2、Iterator

           迭代器标签,用来循环迭代集合或数组中的数据。还可以当for循环一样去使用,非常常用,看看如何使用

           迭代list集合。

                  

           控制循环次数

                 

           获取迭代时的一些状态信息

               

        1.3、a和url标签

            s:url标签:通常用来生成action路径,域<c:url>标签很类似

                 

            s:a标签

                

        1.4、<s:property/>标签

                在前面也使用过了,用来执行ognl表达式,最为常用的方式是使用它在页面上输出ValueStack或ActionContext中的数据。

        1.5、<s:set/>标签

                创建一个变量,并将其保存到指定的范围内。

                

                <s:set var=”myVar” value=”#parameters.score[0]” scope=”page”/>,创建一个变量,保存到page范围,key为myVar,值为“#parameters.score[0]”的运算结果

                注意:scope有一个action范围,并且他也是scope的默认值,它表示保存到request和OgnlContext两个范围中,即比request范围多了一个OgnlContext范围。

        1.6、<s:push/>标签

                <s:push>标签是把指定值暂时压入到值栈中,当执行完<s:push>标签后,压入到值栈中的值会被弹出

        1.7、<s:debug/>标签

                Debug标签用于调试,它在页面中生成一个“[Debug]”超链接,单击这个超链接,可以查看ValueStack和ActionContext中保存的所有对象

     表单标签

        Struts2的表单标签还是比较好用的,但它也存在一些败笔,例如主题这一部分就不是很灵活。所以导致开发中没有公司会使用它提供的主题  

        Struts2标签的优势:

          l  简化代码;一般般啦

          l  自动数据回显;这个很不错。

          |  指定主题样式(说是优点,但很多人也会认为这是缺点)

        

        

      标签样式修改

         三个地方可以修改

         1、在<s:textfield>的theme属性指定为simple,那么这个表单项就使用简单主题

         2、 在<s:form>的theme属性指定为simple,那么整个表单都使用简单主题;

         3、设置struts.ui.theme常量为simple,那么所有表单标签的默认主题都是simple (常用这个)

   

二、struts2的国际化

        国际化的使用范围,

          全局国际化文件,整个程序都可以使用(常用)

          特定包中可以使用(一个包中所有Action可以使用)

          特定Action可以使用(一个Action可以使用)

          临时信息文件(JSP中i18n标签中可以使用)

        JSP页面获取国际化资源

          使用<s:text/>标签, <s:text name="key" />

        action中获取国际化资源

          this.getText("key");

        配置文件中获取国际化资源

          key(直接使用国际化配置文件中的key值即可获得)

        2.1、全局国际化文件

           1、配置三个配置文件

                格式:基本名称_语言_国家.properties 

                res_zh_CN.properties  res_en_US.properties  res.properties  

                  res可以随便取值的,比如下面我使用的i18n

                  res_zh_CN.properties:代表其中放的是中文

                  res_en_US.properties: 英文

                  res.properties:根据浏览器设置的什么语言,就显示那种语言。只提供中文和英文两种选择。

                内容:  

                        

            2、struts.xml中申明国际化资源文件的位置以及作用范围

                   

                  value:标识资源文件的位置在哪里,如果在src下,那么就直接写国际化资源文件的基本名称,如果在别的包下,那么就需要将完整包名写出来

            3、使用国际化资源文件

                在jsp、action、资源文件中使用国际化资源文件有不同的格式,看上面即可。

        2.2、特定包中可以使用(一个包中所有Action可以使用)

             只需要将国际化资源文件的名称和位置固定,不需要在struts.xml中指定,注意,在特定包

                比如只想在com.wuhao.internationa包下使用,

                位置:com.wuhao.internationa包下创建package_zh_CN.properties文件

                名称:com.wuhao.internationa.package_zh_CN.properties  

                注意:这个文件也可以在com.wuhao.internationa包的子包中被使用

                    

        2.3、特定Action可以使用(一个Action可以使用)

           很简单,只需要将国际化资源文件的名称和位置固定,不需要在struts.xml中指定,

            名称:Action名_语言_国家.properties  比如:InternationAction_zh_CN.properties

            位置:与该action同包下

                

        2.4、临时信息文件(JSP中i18n标签中可以使用)

            也就是只能通过i18n标签来拿到国际化资源文件中的属性

            名称:基本名称_语言_国家.properties  

                例如:res_zh_CN.properties

            位置:随便放哪

            使用:

                  两个name的意思分别为 国际化资源文件所放位置 和 资源文件中的字段属性名。

               <s:i18n name="com.wuhao.internation.res">

                  <s:text name="username"/>

               </s:i18n> 

三、总结

      非常简单,掌握标签的使用,和知道标签优点即可。自动回显功能。自动布局,但是需要注意,struts2标签自带的样式问题,一般不使用,会设置为simple。

struts2(五) s标签和国际化的更多相关文章

  1. Struts2【UI标签、数据回显、资源国际化】

    Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签...也就是显示页面的标签..... 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再 ...

  2. Struts2的OGNL标签详解

    一.Struts2可以将所有标签分成3类: UI标签:主要用于生成HTML元素的标签. 非UI标签:主要用于数据库访问,逻辑控制等标签. Ajax标签:用于Ajax支持的标签. 对于UI标签,则有可以 ...

  3. struts2:数据标签

    目录 数据标签1. a标签2. set标签3. push标签4. bean/param标签5. date标签6. include标签7. url标签8. property标签9. debug标签10. ...

  4. struts2 s:if标签以及 #,%{},%{#}的使用方法

    <s:if>判断字符串的问题: 1.判断单个字符:<s:if test="#session.user.username=='c'"> 这样是从session ...

  5. struts2 s:if标签以及 #,%{},%{#}的使用方法等在资料整理

    <s:if>判断字符串的问题: 1.判断单个字符:<s:if test="#session.user.username=='c'"> 这样是从session ...

  6. Struts2之数据标签(二)

    Struts2之数据标签(一):http://blog.csdn.net/u012561176/article/details/46848817 1.action标签:使用此标签能够同意在JSP页面中 ...

  7. [原创]java WEB学习笔记52:国际化 fmt 标签,国际化的总结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. struts2 if正确标签示例

    下面总结一下struts2 中if标签的使用 (1)判断字符串是否为空 <s:if test="user.username==null or user.username==''&quo ...

  9. struts2<s:property />标签

    struts2的<property />标签是输出标签 其value属性是指定输出的内容,如果value属性没有写出来,则默认输出对象栈栈顶的元素. 例如,我们在对象栈中添加一个Perso ...

随机推荐

  1. .NET 工具生成引擎概述

    Mark Michaelis 微软中国MSDN 过去几年大家一直都在使用 .NET Core(有这么久吗?)并且都知道“生成系统”经历了重大改变,不论是终止对 Gulp 的内置支持,还是放弃 Proj ...

  2. javascript 如何打印、输出数组内容(将数组内容以字符串的形式展示出来)

        1.情景展示 在实际开发过程中,为了调试,有时我们需要看数组中具体包含了哪些数据,但是, 如果我们直接打印该数组对象,显示的结果却不是我们想要的. 如何才能将数组内容打印出来呢?(将数组内容以 ...

  3. Ubuntu18.04和OpenWrt 18.06.0 下使用aria2和BaiduExport处理百度盘下载

    Ubuntu下没有可用的百度盘客户端, 下载大文件如果通过浏览器就会特别不可靠. 可以使用Chrome插件 BaiduExport 得到下载链接和参数后, 通过aria2进行下载. Aria2安装 直 ...

  4. Oracle常用存储过程写法

    写在前面 这段时间工作最长接触到的就是Oracle数据库,不论查数据,还是统计.运行job,都离不开PL/SQL 存储过程,下面就整理下经常用到的知识. 一.Function函数 函数是执行非查询语句 ...

  5. java实现读取ftp服务器上的csv文件

    定义ftp操作接口 import java.io.InputStream; import java.util.List; import org.apache.commons.net.ftp.FTPCl ...

  6. mvn jetty debug

    使用mvn jetty:run很爽吧,但是怎么debug了,找了Google的N多老外文章,终于可以了,文章链接:http://gaertig.pl/blog/en/2009/03/debug-jet ...

  7. 【LeetCode】213. House Robber II

    House Robber II Note: This is an extension of House Robber. After robbing those houses on that stree ...

  8. 进阶之路(基础篇) - 010 Arduino 函数(基本、串口、SPI)

    一.基本函数 pinMode(引脚号,模式); digitalWrite(引脚号,电平状态);          //默认低电平(或浮空) digitalRead(数字输入端口号); analogRe ...

  9. 安卓高手之路之ClassLoader(二)

    因为ClassLoader一定与虚拟机的启动有关系,那么必须从Zygote的启动开始看代码.下面就分析一下这些代码,行数不多: int main(int argc, const char* const ...

  10. iOS 限制输入字数完美解决方案

    关于限制输入字数以前也做过,网上也很多方法.但都不够完美,本方法可防止中文联想.粘贴等突破长途限制.可防止Emoji截为两半导致编码出问题.   - (void)textFieldDidChange: ...