基于Struts2框架实现登录案例 之 程序国际化
国际化牵涉的知识非常多,这里只能简单的介绍,程序国际化的一般做法是:在jsp页面时,
不是直接输出信息,而是输出一个key值,该key值在不同语言环境下找到对应资源文件下的
对应信息,因此首先要创建满足不同国家或地域用户的资源文件。
1) 创建国际化资源文件
资源文件的命名规则:basename_语言代码_国家代码.properties,文件中包含一些键值对。
A、语言代码_国家代码:zh_CN、en_US等。
B、国际资源文件放在classes文件夹下。
MessageResource_zh_CN.properties

MessageResource_en_US.properties

2)加载资源文件
Struts2提供非常多的加载国际化资源文件的方式,但最为常用的是加载全局的资源文件,具体方法如下:
A、配置struts.xml文件,添加一个struts.custom.i18n.resources常量。 形如:
<constant name="struts.custom.i18n.resources" value="资源文件basename"></constant>
B、创建struts.properties文件,添加一个struts.custom.i18n.resources常量。形如:
struts.custom.i18n.resources=资源文件basename
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<constant name="struts.custom.i18n.resources" value="MessageResource"></constant>
<package name="mypack" extends="struts-default">
<action name="first">
<result>first.jsp</result>
</action>
</package> <!-- Action必须放在指定的包空间中 -->
<package name="struts2" extends="struts-default">
<!-- 定义login的action,其实现类为com.mhb.action.LoginAction -->
<action name="userlogin" class="com.mhb.action.LoginAction2">
<!-- 定义处理结果与视图资源之间的关系 -->
<result name="success">/login_success.jsp</result>
<result name="failure">/login_failure.jsp</result>
<result name="input">/login2.jsp</result>
</action>
</package>
</struts>
3)应用国际资源文件
A、输出国际化信息:<s:text name="messageKey">
B、表单标签国际化:通过指定key属性,即在表单中加:key="messageKey"
C、校验信息国际化:在基于硬编码方式下,通过getText()方法指定key来获得国际化校验信息提示;
基于验证框架下用message标签中的key属性来实现。形式为
在没开启客户端验证情况下:<message key="messageKey"></message>
在开启客户端验证情况下: <message >${getText("username.required")}</message>
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %> <html>
<body>
<center>
<h3><s:text name="login.title"></s:text></h3>
<%-- 登录表单,提交到login.action --%>
<s:form action="userlogin">
<%--用户名输入框--%>
<s:textfield name="username" key="login.username"></s:textfield>
<%--用户密码输入框--%>
<s:password name="userpwd" key="login.userpwd"></s:password>
<%--登录按钮--%>
<s:submit key="login.submit"></s:submit>
<%--重置按钮--%>
<s:reset key="login.reset"></s:reset>
</s:form>
</center>
</body>
</html>
浏览器效果,调整语言的先后顺序,依次设定显示中文和英文。
A:IE属性--常规--语言--〉中文:显示中文信息


B:IE属性--常规--英语(美国)--〉显示英文信息


基于Struts2框架实现登录案例 之 程序国际化的更多相关文章
- 基于Struts2框架实现登录案例 之 使用Struts2标签库简化表单+继承ActionSupport完成输入交验
一,使用Struts2标签库简化表单 在文章[基于Struts2框架实现登录案例]的基础上,通过使用Struts标签库可以简化登录页面login2.jsp <%@ page language=& ...
- 基于Struts2框架实现登录案例
一,准备工作 1)新建web项目,并导入Struts2jar文件和配置web.xml文件. struts2 jar文件 web.xml文件 <?xml version="1.0&qu ...
- JavaWeb_(Struts2框架)Ognl小案例查询帖子
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...
- Django框架之登录案例
内容: (1)request.GET和request.POST (2)获取get方法提交和post方法提交的数据 一.登录案例 登录逻辑代码 def login(request): if reques ...
- 基于Struts2的用户登录程序
基本步骤: 1.新建Java工程,File>New>Project>Web>Dynamic Web Project,并将工程命名为:Struts2_Demo 2.导入strut ...
- 基于NopCommerce框架开发的微信小程序UrShop
Urshop小程序商城 介绍 UrShop小程序商城 2.0发布啦,发布地址https://gitee.com/urselect/urshop UrShop 根据NopCommerce框架开发的,基于 ...
- 基于xml的用户注册登录案例
用户注册登录 要求:3层框架,使用验证码 1 功能分析 l 注册 l 登录 1.1 JSP页面 l regist.jsp 注册表单:用户输入注册信息: 回显错误信息:当注册失败时, ...
- struts2框架的登录制作
首先:我们要建一个web项目 接着: 我们先来导入struts的xml文件 第一步:右击你的项目名,鼠标到MyEclipse会看到一个add struts开头的文件,点开以后看到: 这里我们选择str ...
- 学习Struts--Chap02:Struts2框架各个功能模块和程序执行流程的介绍
1.Struts2的系统架构: 2.架构中不同Key的作用介绍: servlet Filters:过滤器链,client的全部请求都要经过Filter链的处理. Struts Core:Struts2 ...
随机推荐
- Python脚本控制的WebDriver 常用操作 <十五> 处理Navigation Bar
下面将使用WebDriver来模拟操作:选择一个Navigation bar的选项 测试用例场景 Navigation Bar可以看作是简单的类似于tab的导航栏.一般来说导航栏都是ul+li.先定位 ...
- ActiveMQ之TemporaryQueue和TemporaryTopic
TemporaryQueue和TemporaryTopic,从字面上就可以看出它们是“临时”的目的地.可以通过Session来创建,例如: TemporaryQueue replyQueue = se ...
- SOA Demo
使用SOA来实现两个数字的相加,不包含验证,仅供练习使用. PDF文档下载地址:http://files.cnblogs.com/chenyongblog/SOA_Demo.pdf 源码下载:http ...
- iPad横屏模式研究
在iPad应用开发时如何让设备只支持横屏(landscape)模式,我做了多次尝试,并没有发现比较简捷的设置方法.我尝试了大概大概3种方式. 1.通过XCode设置“iPad Deployment i ...
- python 链接hive
http://blog.csdn.net/xubcing/article/details/8350287 http://www.centoscn.com/python/2014/0921/3801.h ...
- hibernate中文乱码问题
在学习hibernate的过程中,发现在往mysql数据库中插入数据的时候会报错. <property name="hibernate.connection.url"> ...
- Exception in thread "http-bio-8081-exec-3" java.lang.OutOfMemoryError: PermGen space
前言: 在http://www.cnblogs.com/wql025/p/4865673.html一文中我曾描述这种异常也提供了解决方式,但效果不太理想,现在用本文的方式,效果显著. 目前此项目只能登 ...
- Linux 命令整理 —— 基本操作
1.ls 目录列举(dir) 一般我们这么写: ls 列举当前目录的所有文件,如果文件很多的话,这么看很复杂.我们可以加关键字,例如我们要看包含xml的全部文件. ls *xml* 如果这个时候,我们 ...
- Windows Server 2008下共享资源访问走捷径 (不用用户名 和 密码 访问共享)
1. 启用来宾帐号2. 共享目录添加“Guest”帐号3. “gpedit.msc”,打开对应系统的组策略编辑窗口;在该编辑窗口的左侧显示区域,依次展开“本地计算机策略”/“计算机配置”/“Windo ...
- requireJS源码流程分析