`
butnet
  • 浏览: 89089 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Struts资源文件处理工具

阅读更多

一、创建置换工具

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URISyntaxException;

/**
* 字符转换工具
*/
public class Native2Ascii {
    private static String fromFile = null;
    private static String toFile = null;
    private static String toSrcFile = null;

    /**
     * 将字符串str中的非Ascii字符转换为\uFFFF格式
     *
     * @param str
     *            需要转换的字符
     * @return 转换结果
     */
    public static String toAscii(String str) {
        if (str.trim().startsWith("#"))
            return str;
        StringBuffer re = new StringBuffer();
        char[] chs = str.toCharArray();
        for (char c : chs) {
            if (c > 255)
                re.append("\\u" + Integer.toHexString(c));
            else
                re.append(c);
        }
        return re.toString();
    }

    /**
     * Native2Ascii 原文件 新文件路径
     *
     * @throws URISyntaxException
     */
    public static void main(String args[]) throws IOException,
            URISyntaxException {
        if (args == null || args.length == 0) {
            File file = new File(Native2Ascii.class.getResource("/N2A.ini")
                    .toURI());
            if (!file.exists()) {
                file.createNewFile();
                BufferedWriter writer = new BufferedWriter(new FileWriter(file));
                writer.write("#从资源文件");
                writer.newLine();
                writer.write("From File = ");
                writer.newLine();
                writer.write("#到资源文件");
                writer.newLine();
                writer.write("To File = ");
                writer.newLine();
                writer.write("#到本地源文件");
                writer.newLine();
                writer.write("Src File = ");
                writer.newLine();
                writer.close();
                System.out.println("配置文件不存在,以默认方式创建 \"N2A.ini\" 文件");
                return;
            } else {
                InputStream in = Native2Ascii.class
                        .getResourceAsStream("/N2A.ini");
                if (!readConfig(in))
                    return;
            }
        } else if (args == null || args.length != 3) {
            System.out.println("Native2Ascii 原文件 新文件路径");
            return;
        } else {
            fromFile = args[0];
            toFile = args[1];
            toSrcFile = args[2];
        }
        BufferedReader reader = new BufferedReader(new InputStreamReader(Native2Ascii.class.getResourceAsStream(fromFile)));
        BufferedWriter writer = new BufferedWriter(new FileWriter(new File(Native2Ascii.class.getResource(toFile).toURI())));
        BufferedWriter srcWriter = new BufferedWriter(new FileWriter(toSrcFile));
        String temp;
        while ((temp = reader.readLine()) != null) {
            temp=toAscii(temp);
            writer.write(temp);
            writer.newLine();
            srcWriter.write(temp);
            srcWriter.newLine();
        }
        reader.close();
        writer.close();
        srcWriter.close();
    }

    private static boolean readConfig(InputStream in) throws IOException {
        BufferedReader reader=new BufferedReader(new InputStreamReader(in));
        String temp,name,key;
        int index,line=0;
        while((temp=reader.readLine())!=null){
            line++;
            if(temp.trim().length()==0)continue;
            if(temp.trim().startsWith("#"))continue;
            if(temp.trim().startsWith("!"))continue;
            index=temp.indexOf("=");
            if(index==-1){
                System.out.println("Error: Line "+line+" is not format \"name=value\"");
                continue;
            }
            name=temp.substring(0, index).trim();
            key=temp.substring(index+1).trim();
            if(name.equalsIgnoreCase("From File")){
                fromFile=key;
            }else if(name.equalsIgnoreCase("To File")){
                toFile=key;
            }else if(name.equalsIgnoreCase("Src File")){
                toSrcFile=key;
            }
        }
        boolean ok=true;
        if(fromFile==null||fromFile.length()==0){
            ok=false;
            System.out.println("Error: \"From File\" value is NULL");
        }
        if(toFile==null||toFile.length()==0){
            ok=false;
            System.out.println("Error: \"To File\" value is NULL");
        }
        if(toSrcFile==null||toSrcFile.length()==0){
            ok=false;
            System.out.println("Error: \"Src File\" value is NULL");
        }
        return ok;
    }
}   

二、注意此工具的配置文件N2A.ini

#资源文件 的源文件
From File = /MyResources.txt
#Struts配置的资源文件
To File = /MessageResources.properties
#Struts配置的资源文件的源文件
Src File = src/MessageResources.properties

三、效果
/MyResources.txt 文件内容如下:

#全局信息
system.name = 影城管理系统
system.version = Vesion 1.0
system.copy = 2008-2020
page.title = 欢迎进入影城管理系统
type.null = 请求类型不能为空

运行置换工具得到文件:/MessageResources.properties  src/MessageResources.properties 文件内容如下:

#全局信息
system.name = \u5f71\u57ce\u7ba1\u7406\u7cfb\u7edf
system.version = Vesion 1.0
system.copy = 2008-2020
page.title = \u6b22\u8fce\u8fdb\u5165\u5f71\u57ce\u7ba1\u7406\u7cfb\u7edf
type.null = \u8bf7\u6c42\u7c7b\u578b\u4e0d\u80fd\u4e3a\u7a7a

分享到:
评论

相关推荐

    struts中文资源文件转换工具

    总的来说,"struts中文资源文件转换工具"是一个实用的辅助工具,它简化了在Struts项目中处理中文资源文件的复杂性,有助于确保应用程序的稳定性和用户体验。对于处理多语言环境的Java Web开发者来说,理解和掌握这类...

    Struts的文件下载

    在Struts中实现文件下载是一项常见的功能,尤其在处理用户请求获取服务器上的静态或动态资源时。这篇博文将深入探讨如何在Struts框架下实现文件下载的功能。 首先,我们需要了解文件下载的基本原理。当用户点击下载...

    Struts2漏洞检查工具2018版.rar

    压缩包内的"Struts2漏洞检查工具2018版.exe"很可能是该工具的可执行文件,用户在Windows环境下运行此文件即可启动漏洞检测程序。而"logs"可能是日志文件夹,用于记录扫描过程中发现的问题和操作记录,这对于分析扫描...

    Struts中的国际化(资源文件的应用)

    在Struts中,这一功能主要通过资源文件和Java的`java.util.Locale`与`java.util.ResourceBundle`类实现。 首先,资源文件是存储应用程序中各元素(如标签、错误消息和帮助信息)的文本字符串的地方,通常以键值对的...

    Struts2漏洞检查工具.rar

    总的来说,"Struts2漏洞检查工具"是网络安全领域的重要资源,它提高了识别和管理Struts2漏洞的效率,降低了企业因安全疏忽导致的数据泄露或系统瘫痪的风险。使用此工具,用户可以更加主动地保护自己的网络资产,确保...

    Struts2资源文件在jsp页面中显示乱码解决

    然而,在国际化(I18N)的应用场景下,Struts2资源文件在JSP页面中显示乱码的问题常常困扰着开发者。本文将深入探讨这一问题,并详细介绍两种有效的解决方案。 ### Struts2资源文件与乱码问题 Struts2框架通过资源...

    eclipse中struts文件配置工具

    4. **国际化配置**:帮助设置和管理不同语言的资源文件,便于应用的全球化。 5. **动态生成代码**:根据配置自动生成Action类、Form Bean类和其他相关的Java代码,降低手动编码的工作量。 6. **验证规则设置**:提供...

    struts2文件上传下载实例

    接下来,`src`目录是源代码存放的地方,通常包括Java源文件、配置文件和资源文件。在Struts2中,我们需要创建一个Action类来处理文件上传和下载的业务逻辑。Action类会实现Struts2的特定接口,如`ActionSupport`,并...

    资源国际化 struts2资源国际化

    对于Struts2项目,资源文件需要放置在`src`目录下,并在`struts.xml`配置文件中声明资源包,例如添加 `<constant name="struts.custom.i18n.resources" value="app"></constant>`,这样Struts2就会自动加载资源文件...

    Struts2文件上传

    Struts2是一个基于MVC设计模式的Java web框架,它提供了丰富的功能来处理表单提交,包括文件上传。在这个场景中,我们将深入探讨Struts2如何实现文件上传,以及涉及到的关键知识点。 首先,我们需要了解Struts2的...

    Properties Editor(在eclipse编辑struts2 资源文件的插件 由unicode转换成中文)

    总之,Properties Editor是Eclipse开发环境下处理Struts2资源文件的强大工具,它消除了Unicode编码带来的困扰,提高了中文开发的效率。通过这个插件,开发者可以更加专注于应用的逻辑和功能,而不是编码问题。如果你...

    Struts2漏洞检查工具2018版.zip

    Struts2是一款非常流行的Java Web框架,...总的来说,Struts2漏洞检查工具2018版是保障基于Struts2的Web应用安全的重要资源,它提供了一种有效的方式来识别和修复潜在的安全问题,从而保护企业的数据和用户的信息安全。

    struts工具

    8. **Internationalization(国际化)**:Struts支持多语言环境,通过资源包(Resource Bundle)实现界面文本的国际化。 9. **Validation**:Struts提供了内置的验证机制,可以在客户端或服务器端对用户输入的数据...

    struts2 漏洞利用工具

    总之,Struts2漏洞利用工具是安全专业人士的宝贵资源,通过它们,我们可以发现并修补潜在的威胁,保护我们的网络环境免受恶意攻击。在实际操作中,应确保合法、合规地使用这些工具,并始终遵循最佳安全实践。

    Struts2工具包

    9. **国际化与本地化**:Struts2支持多语言环境,开发者可以创建资源文件来实现不同地区的语言切换。 10. **插件体系**:Struts2拥有丰富的插件生态系统,如JSON插件、Ajax插件等,可以快速添加新功能或增强现有...

    Struts2文件上传的大小限制问题

    在处理用户交互,特别是文件上传时,Struts2提供了一种便捷的方式。然而,文件上传功能也涉及到一个重要的问题,那就是大小限制。在实际应用中,为了防止恶意用户上传大文件导致服务器资源耗尽,或者保护服务器免受...

    Struts2漏洞检查工具2017版

    7. **社区支持**:腾龙技术论坛是一个学习黑客技术和网络安全的地方,可能包含关于Struts2漏洞讨论的相关资源和解决方案,用户可以在这里交流经验,寻求帮助。 在使用此工具时,用户需要确保具备一定的Java Web开发...

    解决Struts中ApplicationResources.properties文件不支持中文问题

    解决 Struts 中 ApplicationResources.properties 文件不支持中文问题需要使用 Properties Editor 工具,该工具可以正确地处理中文字符,使得 Struts 框架中的资源文件可以正确地显示中文字符。

    struts2文件上传

    在提供的链接资源中,可以找到更多关于Struts2文件上传的实际示例和实践技巧。通过阅读这些博客和文章,你可以深入理解Struts2如何处理文件上传的细节,以及如何在项目中安全、高效地实现这一功能。

Global site tag (gtag.js) - Google Analytics