目录:
本文主要讲述struts2中有关资源文件的配置和使用,在 Struts2基础教程三:表单和校验的应用 一文中的项目为基础进行演示。
- 创建资源文件
- 页面标签属性的修改
- 相关配置修改及演示
- package级别的资源文件
- 全局资源文件及演示
- 国际化(i18n)及演示
[一]、创建资源文件
在 com.micmiu.struts2.demo.register.action 包下创建资源文件:RegisterAction.properties,内容如下:
1 2 3 4 5 6 |
personBean.firstName=First Name personBean.lastName=Last Name personBean.blogurl=Blog Site personBean.email=E-Mail personBean.age=AGE thankyou=Thank you for registering %{personBean.firstName}. |
Tips:资源文件和action文件在同一包下,文件名需要和 RegisterAction.java 的文件名 RegisterAction 一致。
[二]、页面标签属性的修改
标签对应的属性调整,把标签类似:
1 |
<s:textfield name="personBean.firstName" label="First name" /> |
修改成:
1 |
<s:textfield key="personBean.firstName" /> |
标签中key 对应的值,需要和资源文件中配置的key一致,注册演示页面 register.jsp 修改后的如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Welcome to micmiu.com !</title> <s:head /> </head> <body> <h3>Register for Message Resource File Demo .</h3> <s:form action="register"> <s:textfield key="personBean.firstName" /> <s:textfield key="personBean.lastName" /> <s:textfield key="personBean.blogurl" /> <s:textfield key="personBean.email" /> <s:textfield key="personBean.age" /> <s:submit /> </s:form> </body> </html> |
注册成功的页面 thankyou.jsp 修改后如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Welcome to micmiu.com !</title> </head> <body> <h3> <s:text name="thankyou" /> </h3> <p> Your registration information:<br> <s:property value="personBean" /> </p> <p> <a href="<s:url action='index' />">Return to home page</a>. </p> </body> </html> |
[三]、相关配置修改及演示
为了使页面标签属性key能找到资源文件对应的值,该页面必须是标准的Struts2 Action 运行后返回的显示页面 ,所以需要配置相应的Action 跳转,修改 index.jsp中跳转到 register.jsp的方法:
1 2 3 |
<p> <a href="register.jsp">Please register</a> By JSP . </p> |
修改成Struts2 Action 标准的跳转:
1 2 3 4 |
<p> <s:url action="registerInput" var="registerInputLink" /> <a href="${registerInputLink}">Please register</a> By Struts Action URL . </p> |
同时需要在 struts.xml 中配置 registerInput action:
1 2 3 4 5 |
<action name="registerInput" class="com.micmiu.struts2.demo.register.action.RegisterAction" method="input"> <result name="input">/register.jsp</result> </action> |
Tips:如果配置了全局资源文件,如果页面中标签属性key能在全局资源文件中找到对应的值,不管是否为Struts2 Action标准的URL都可以正确读取资源文件中的配置信息(后面有具体演示)。
运行项目打开链接,效果如下图:
[四]、package级别的资源文件
如果多个不同package下action执行后的页面中会用到同样的一些key(比如helloworld 和register两个功能),可以选择在它们共同的上级package下,添加package级别的资源文件,这样就可以达到公用的效果。
比如在 com.micmiu.struts2.demo 包下创建资源文件:package.properties,内容如下:
1 |
hello=Welcome to Struts2 Demo. |
在 register.jsp 页面中添加:
1 |
<h1> <s:text name="hello" /> </h1> |
[五]、全局资源文件及演示
有些信息是整个项目公用的,这些资源信息我们就可以配置在全局资源文件,在resource目录下创建global.properties 文件,添加如下内容:
1 2 |
myblog = http://www.micmiu.com mycontact=mail <a href='mailto:sjsky_007@gmail.com'>sjsky_007@gmail.com</a> |
全局资源文件 需要在 strtus.xml 中配置文件中指定:
1 |
<constant name="struts.custom.i18n.resources" value="global"></constant> |
在 register.jsp 页面中添加:
1 2 3 4 5 |
<hr> <p>more info:</p> <s:text name="myblog" /> <br> <s:text name="mycontact" /> |
运行项目,可以看到 package级别和全局资源文件的效果如下:
[五]、国际化(i18n)
为了适应不同的语言不同国家,可以配置多种资源文件,项目运行时会根据当前的locale自适应合适的资源文件。比如 我们可以在 com.micmiu.struts2.demo.register.action 包下创建中文对应的资源文件:RegisterAction_zh.properties,内容如下:
1 2 3 4 5 6 |
personBean.firstName=姓 personBean.lastName=名 personBean.blogurl=博客 personBean.email=邮箱 personBean.age=年龄 thankyou=谢谢 %{personBean.firstName}的注册. |
其他不需要修改,直接运行项目可以看到如下的效果:
本文介绍到此结束@Michael Sun.
原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]
本文链接地址: http://www.micmiu.com/j2ee/struts/struts2-message-resource/
0 条评论。