struts2(五) s标签和国际化
坚持就是胜利。
--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标签和国际化的更多相关文章
- Struts2【UI标签、数据回显、资源国际化】
Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签...也就是显示页面的标签..... 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再 ...
- Struts2的OGNL标签详解
一.Struts2可以将所有标签分成3类: UI标签:主要用于生成HTML元素的标签. 非UI标签:主要用于数据库访问,逻辑控制等标签. Ajax标签:用于Ajax支持的标签. 对于UI标签,则有可以 ...
- struts2:数据标签
目录 数据标签1. a标签2. set标签3. push标签4. bean/param标签5. date标签6. include标签7. url标签8. property标签9. debug标签10. ...
- struts2 s:if标签以及 #,%{},%{#}的使用方法
<s:if>判断字符串的问题: 1.判断单个字符:<s:if test="#session.user.username=='c'"> 这样是从session ...
- struts2 s:if标签以及 #,%{},%{#}的使用方法等在资料整理
<s:if>判断字符串的问题: 1.判断单个字符:<s:if test="#session.user.username=='c'"> 这样是从session ...
- Struts2之数据标签(二)
Struts2之数据标签(一):http://blog.csdn.net/u012561176/article/details/46848817 1.action标签:使用此标签能够同意在JSP页面中 ...
- [原创]java WEB学习笔记52:国际化 fmt 标签,国际化的总结
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- struts2 if正确标签示例
下面总结一下struts2 中if标签的使用 (1)判断字符串是否为空 <s:if test="user.username==null or user.username==''&quo ...
- struts2<s:property />标签
struts2的<property />标签是输出标签 其value属性是指定输出的内容,如果value属性没有写出来,则默认输出对象栈栈顶的元素. 例如,我们在对象栈中添加一个Perso ...
随机推荐
- python 之html的headers提取操作
# -*- coding: cp936 -*- #python 27 #xiaodeng #python 之html的headers提取操作 # import urllib,urllib2 html= ...
- Linux下RocksDB、LevelDB、ForestDB性能测试对比
简要说明 本次环境与http://www.cnblogs.com/oloroso/p/6306352.html中的一致. 依然是增删查改各测试10000次,每个测试重复5次取平均值. 1.不使用jem ...
- CentOS7 使用ntp设置系统时间,开机自动设置时间,
首先如果没有安装ntp自己装一下: yum install -y ntp 然后,如果开了防火墙,记得打开自己的123端口,该端口是ntp用来同步时间的 firewall-cmd --zone=publ ...
- Spring Cloud Eureka集群 动态扩展新节点
场景描述: Eureka的集群节点有两个,互相注册形成集群,已经支持动态刷新(不知道怎么让Eureka支持动态刷新的可以参考http://www.cnblogs.com/flying607/p/845 ...
- 在spring boot微服务中使用JWS发布webService
发布时间:2018-11-22 技术:Java+spring+maven 概述 在springboot微服务中使用JWS发布webService,在服务启动时自动发布webservice接口. ...
- Java线程(十一):Fork/Join-Java并行计算框架
并行计算在处处都有大数据的今天已经不是一个新奇的词汇了.如今已经有单机多核甚至多机集群并行计算.注意,这里说的是并行,而不是并发.严格的将,并行是指系统内有多个任务同一时候运行,而并发是指系统内有多个 ...
- 如何解决input file 选取相同文件后,change事件不起作用解决方法
两种方法 1.在你的input所属的form表单reset()就可以了! $("#avatorForm")[0].reset(); 2.设置你的input file value值为 ...
- lua一些特殊函数说明
setclLvalue(L, L->top, cl); 这是个宏展开是这样: ((L->top)->value_).gc = obj2gco(cl); //top valud gc ...
- hduoj1073--Online Judge
做道题,并没有太多的技巧,关键在与对Accepted,presented error 和wa的判断,第一步如果两者完全一样,那么很定是AC了 ,否则如果去掉多余换行,空格,制表后还有不同说明是数据 不 ...
- 搭建简单的网络部分(OC)框架
准备工作 1.文件目录结构示图(按照MVC分层) 文件目录结构图/自定义Cell Controller: CYXOneViewController Model: CYXMenu View: CYXCe ...