`
zhanyu1984
  • 浏览: 72032 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

struts2学习笔记之转换器实现语言切换

阅读更多
第一步,在工程src目录下新建属性文件struts.properties,内容如下:

struts.custom.i18n.resources=globalMessages

第二步,在工程src目录下新建属性文件globalMessages_zh_CN.properties,内容如下:

HelloWorld=\u4f60\u597d

第三步,在工程src目录下新建属性文件globalMessages_en_US.properties,内容如下:

HelloWorld=Hello World

第四步,实现处理表单的Action,HelloWorld代码如下:

package com.dadao.struts2;

import java.util.Locale;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.util.LocalizedTextUtil;

public class HelloWorld extends ActionSupport {
    private static final long serialVersionUID = 1L;
    private Locale loc;
    private String message;
    @Override
    public String execute() throws Exception {
        message=LocalizedTextUtil.findDefaultText("HelloWorld",loc);
        return SUCCESS;
    }
    public Locale getLoc() {
        return loc;
    }
    public void setLoc(Locale loc) {
        this.loc = loc;
    }
    public String getMessage() {
        return message;
    }
}
第五步,实现转换器LocalConverter,代码如下:

package com.dadao.struts2;

import java.util.Locale;
import java.util.Map;

import ognl.DefaultTypeConverter;

public class LocalConverter extends DefaultTypeConverter {

    @Override
    public Object convertValue(Map context, Object value, Class toType) {
        if(toType==Locale.class){
            String local=((String[])value)[0];
            return new Locale(local.substring(0,2),local.substring(3));
        }else if(toType==String.class){
            Locale local=(Locale)value;
            return local.toString();
        }
        return null;
    }
    
}
第六步,在工程src目录下新建属性文件xwork-conversion.properties,内容如下:
java.util.Locale=com.dadao.struts2.LocalConverter
第七步,配置struts.xml文件,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="strutsPackage" extends="struts-default">
        <action name="HelloWorld" class="com.dadao.struts2.HelloWorld">
            <result>/index.jsp</result>
        </action>
    </package>
</struts>
第八步,完成index.jsp,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
        <s:form action="HelloWorld" method="post">
        input language:<s:textfield name="loc"></s:textfield>
        <br><s:submit></s:submit>
        </s:form>
        <s:property value="message"/>
  </body>
</html>
第九步,测试,

可在文本框中输入"en_US"和"zh_CN",并提交,查看效果
分享到:
评论

相关推荐

    struts2学习笔记3数据类型转换

    struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换

    struts2学习笔记总结

    同时,Struts2支持国际化,通过资源文件实现多语言切换。 七、异常处理 Struts2提供了全局和局部两种异常处理方式。全局异常处理配置在struts.xml中,可捕获所有Action的异常;局部异常处理则在Action类中通过@...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    Struts2学习笔记

    根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...

    struts2学习笔记(完美总结)——转自OPEN经验库

    在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    张龙圣思园struts2学习笔记word

    张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...

    struts2学习笔记三(第3讲.Struts2的类型转换)

    在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`...

    struts2四天的学习笔记

    8. **国际化(Internationalization, i18n)**:Struts2支持多语言环境,通过资源包(Properties文件)实现不同语言的切换,提供更好的用户体验。 9. **异常处理**:Struts2允许定义全局和Action级别的异常处理策略...

    struts2学习笔记黑马程序员

    ### Struts2学习笔记之文件上传与Ajax开发 #### Struts2文件上传 **文件上传简介** 文件上传是Web应用中常见的功能之一,Struts2框架内置了对文件上传的支持,使得开发者能够轻松地实现这一功能。为了确保文件...

    struts2学习笔记(1)

    ### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...

    struts2学习笔记

    struts2学习笔记struts2学习笔记struts2学习笔记

    struts2注册转换器

    1. **创建自定义转换器类**:继承`org.apache.struts2.util.FieldAwareConverter`或者直接实现`Converter`接口。在这个例子中,我们可能会创建一个名为`CustomDateConverter`的类,该类负责将字符串"20110202"转换为...

    struts2 类型转换器

    开发者可以实现`org.apache.struts2.util.TypeConverter`接口或继承`org.apache.struts2.util.StrutsTypeConverter`抽象类来创建自己的类型转换器。然后,通过在Action类或者全局配置文件(struts.xml)中注册这个...

    struts2学习笔记四(第4讲.Struts2的类型转换续)

    在"Struts2学习笔记四(第4讲.Struts2的类型转换续)"中,我们将会深入探讨Struts2中的类型转换机制,这是一个核心特性,用于处理Action类属性与HTTP请求参数之间的数据类型转换。 在HTTP请求中,数据通常是字符串...

Global site tag (gtag.js) - Google Analytics