struts2国际化

本文详细介绍了如何在Struts2框架中利用<s:i18n>和<s:text>标签进行国际化处理,通过配置properties文件和标签的使用,实现在不同语言环境下的页面显示。包括标签的正确放置位置、资源文件的路径配置、动态语言选择机制等关键点。并提供了一个实际JSP页面示例。
摘要由CSDN通过智能技术生成

struts2的国际化很简单,只需要properties文件和标签就可以输出了。在struts.xml文件3中配置constant,输出不起作用。下面讲讲仅仅利用标签和properties文件来进行国际化。

标签<s:i18n name="i18n/message" >。

struts2需要知道国际化文件存放的路径和国际化文件的名称。其中i18n的name属性就是制定国际化资源存放的路径和名称,不过,这里指定的路径是相对路径,都是以class目录为基准的。上述的配置指的是class/i18n/message_xx_xx.properties文件。

struts2会在启动的时候加载国际化文件的内容到内存中,如果在web程序启动的时候,修改这个国际化文件,是不会重新加载到内存的。所以国际化资源文件是不可动态加载的。

<s:i18n>这个标签,应该包裹<html>元素,把这个标签放在<html>元素的外层。

标签<s:text name="xx"/>

这个标签必须在<s:i18n>标签内使用,否则是不起作用的,这个标签是用来输出资源文件的指定键的值,至于选用哪一个资源文件,会根据浏览器当前的语言来进行选择。如果资源文件不存在这个键,那么把这个键当做值来输出。下面是我的JSP页面的一个实例。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="../common/Taglib.jsp"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<s:i18n name="i18n/message">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title><s:text name="admin_login_page_title"/></title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">


<script type="text/javascript" src="/QuickOrder/js/import.js"></script>


  </head>
  
  <body>
  <div style="width: 320px; height: 240px; position: relative; top: 200px; left: 900px;">
  <div class="easyui-panel" title='<s:text name="admin_login"/>' style="width: 320px; heigth: 240px; padding: 20px;">
  <form id="adminLoginForm" method="POST" action="/QuickOrder/j_spring_security_check">
  <input type="hidden" name="mode" value="admin"/>
  <table width="100%" cellspacing="0" cellpadding="2" align="center" border="0">
  <tr>
  <td>
  <a class="easyui-linkbutton" data-options="iconCls: 'icon-male', plain: true,">
  <s:text name="username"/>
  </a>
  </td>
  <td>
  <input id="adminUsername" name="j_username" class="easyui-validatebox"/>
  </td>
  </tr>
  <tr>
  <td>
  <a class="easyui-linkbutton" data-options="iconCls: 'icon-password1', plain: true,">
  <s:text name="password"/>
  </a>
  </td>
  <td>
  <input id="adminPwd" type="password" name="j_password" class="easyui-validatebox"/>
  </td>
  </tr>
  <s:if test="%{#application.setting.verificationCodeLogin == true}">
<tr>
<td colspan="2" style="text-align: right; padding-right: 25px;">
<img alt='<s:text name="verification_code"/>' src="/QuickOrder/quickorder/VerificationCode.png">
<input name="verificationCode" type="text" size="4"/>
</td>
</tr>
  </s:if>
  <tr>
  <td colspan="2" style="text-align: right;">
  <a class="easyui-linkbutton" data-options="iconCls: 'icon-sign-in'" οnclick="adminLogin();">
  <s:text name="login"/>
  </a>
  </td>
  </tr>
  </table>
  </form>
  </div>
  </div>


  <script type="text/javascript">
  $adminLoginForm = $("#adminLoginForm");
  $adminUsername = $("#adminUsername");
  $adminPwd = $("#adminPwd");
 
  function initialize()
  {
  $("#adminUsername, #adminPwd").validatebox({
  required: true,
  validType: {
  length: [6,20]
  }
  });
  }
 
  function adminLogin()//管理员登录按钮
  {
  $adminLoginForm.submit();
  }


  </script>
  </body>
</html>
</s:i18n>

总之,使用<s:i18n>和<s:text>标签,再结合国际化资源文件,就能够实现JSP页面的国际化。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值