Struts2实现自由选择语言环境

本文介绍如何使用 Struts2 框架实现应用的国际化,包括配置消息资源文件、设置编码及语言环境等步骤。

struts国际化需要

开发工具myeclipse8.0

第一步: 新建项目必须要J2EE5.0(不然加不上Struts2)包

第二步: 加入Struts2核心包(struts2-core Library)其他的不需要

【struts2核心包2.1.8】

 struts2-embeddedjsp-plugin-2.1.8.jar
 struts2-convention-plugin-2.1.8.jar
 struts2-json-plugin-2.1.8.jar
struts2-core-2.1.8.jar

第三步: 更改 WEB-INF/web.xml文件

所有的jsp和Action都交给过滤

  <filter>
      <filter-name>struts2</filter-name>
      <filter-class>
          org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      </filter-class>
  </filter>
  <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>*.action</url-pattern>
      <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
第四步: 修改src目录下的struts.xml文件添加一个Action

/**name值随便写  extends默认是写成"struts-default" 主要作用是继承Action的一些用到的类*/

    <package name="struts2_login" extends="struts-default">          

  /**name值随便写(访问的路径)    method对应Action中的方法 class对应的类*/

        <action name="checkLogin2" class="com.LoginAction" method="checkLogin2">
  /**返回的字符串   和跳转的页面地址*/           

<result name="success">/choose.jsp</result></action>
    </package>

第五步: 添加消息资源文件

【Struts2消息资源文件】

//国际化文件

globalMessages_en_US.properties


huizi.home=Welcome
huizhi.en=American English
huizhi.cn=Simplified Chinese

 

globalMessages_zh_CN.properties


huizi.home=/u4F60/u597D/u554A
huizhi.en=/u7F8E/u56FD/u82F1/u8BED
huizhi.cn=/u7B80/u4F53/u4E2D/u6587

 

配置键值对


//默认文件   以下设置是固定的因是Struts的内部变量

struts.properties

//设置18n的前缀,并且此文件为全局消息资源文件

struts.custom.i18n.resources=globalMessages

//设置编码集
struts.i18n.encoding=utf-8

第六步: 创建Action   路径为SRC  com下面  路径和名字和struts.xml配置信息统一

 

【继承ActionSupport   java类一个也就是Action文件】

 

@SuppressWarnings("serial")
public class LoginAction extends ActionSupport {
//设置获取语言环境的变量
    private Locale current;
    public void  setCurrent(Locale cur){
        this.current=cur;
    }
    @SuppressWarnings("unchecked")
    public Map<String, Locale> getLocales(){

//定义MAP加入本系统支持的语言环境
        Map<String, Locale> locales=new Hashtable<String, Locale>(2);
        ResourceBundle bundle=ResourceBundle.getBundle("globalMessages",current);

    //"huizhi.en"和"huizhi.cn"要对应消息资源文件不然会报标签错误
        locales.put(bundle.getString("huizhi.en"),Locale.US);
        locales.put(bundle.getString("huizhi.cn"),Locale.CHINA);
        return locales;
    }
    public String checkLogin2(){
        return SUCCESS;
    }

}

第七步: 在根目录下面添加一个jsp文件与struts.xml中设置的统一

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>//编码
<%@ taglib prefix="s" uri="/struts-tags"%>  //给页面加入Struts标签库

<script type="text/javascript">//js事件
function changeLocale()
{
 document.getElementById("langForm").submit();
}
</script>

//获取struts2默认的资源拦截器

<s:set name="SESSION_LOCALE" value="#session['WW_TRANS_I18N_LOCALE']"></s:set>

//调用javaBean传入本地的语言包

<s:bean id="locales" name="com.LoginAction" >
<s:param name="current" value="#SESSION_LOCALE==null?locale:#SESSION_LOCALE"></s:param>
</s:bean>

//默认当前连接
      <form action='<s:url/>' name="langForm">

//struts2标签传入map #locales.locales 调用javaBean中个头方法
 <s:select label="language" list="#locales.locales" listKey="value" listValue="key" 
 value="#SESSION_LOCALE==null?locale:#SESSION_LOCALE" name="request_locale"
 onchange="changeLocale()" headerKey="0" headerValue="--select--"/>
      </form>

//struts2标签 显示消息资源文件key对应的数据据

      <s:text name="huizi.home"></s:text>

//注意:别忘了最后访问的时候访问的是http://localhost:8088/progect/*.Action

 

突然间事情多了。第一次写不知道从何下手

 

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值