`

MessageUtil

阅读更多
import java.text.MessageFormat;
import java.util.ResourceBundle;

import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

public class MessageUtil extends BaseValidator {
    
    private MessageUtil() {
        
    }
    
    /**
     * Get message from language propriety file
     * @param bundle             Language propriety file key
     * @param key                Message key
     * @param defaultMessage     Default message
     * @param arguments          Message arguments
     */
    public static String getText(String bundle, String key, String defaultMessage, String[] arguments) {
        
        String message = null;
        
        try {
            ServletRequestAttributes servletRequestAttributes = 
                (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
            
            User user = 
                (User) servletRequestAttributes.getAttribute(
                        LogonConstants.SESSION_USER, 
                        RequestAttributes.SCOPE_SESSION);
            
            String local = null;
            if (user != null) {
                local = user.getLocale().getValue();
            } else {
                local = FieldValidationConstants.DEFAULT_LOCAL.getLanguage() + "_" 
                            + FieldValidationConstants.DEFAULT_LOCAL.getCountry().toLowerCase();
            }
            
            String fullPath = "language." + bundle + "." + bundle + "_" + local;
            ResourceBundle oBundle = ResourceBundle.getBundle(fullPath);
            message = oBundle.getString(key);
        } catch (Exception e) {
            message = defaultMessage;
            e.printStackTrace();
        }
        
        if (arguments != null) {
            message = MessageFormat.format(message, arguments);
        }
        
        return message;  
    }
    
    public static void addPageMessage(boolean success, String successMessage, String errorMessage) {
        if (success) {
            if (!Util.isEmpty(successMessage)) {
                MessageUtil.addPageSuccessMessage(successMessage);
            }
        } else {
            if (!Util.isEmpty(errorMessage)) {
                MessageUtil.addPageErrorMessage(errorMessage);
            }
        }
    }
    
    /**
     * Add page error message to request attribute 
     * @param errorMessage       Page error message
     */
    public static void addPageErrorMessage(String errorMessage) {
        
        if (!Util.isEmpty(errorMessage)) {
            ServletRequestAttributes servletRequestAttributes = 
                (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
            
            Messages messages = BaseValidator.getMessages(servletRequestAttributes);
            
            messages.addErrorMessage(errorMessage);
            
            servletRequestAttributes.setAttribute(FieldValidationConstants.MESSAGES, 
                    messages, RequestAttributes.SCOPE_REQUEST);
        }
    }
    
    /**
     * Add page error message to request attribute 
     * @param bundle             Language property file id
     * @param key                Message key
     * @param defaultMessage     Default message
     * @param arguments          The arguments of message
     */
    public static void addPageErrorMessage(String bundle, String key, String defaultMessage, String[] arguments) {
        
        String errorMessage = MessageUtil.getText(bundle, key, defaultMessage, arguments);
        
        MessageUtil.addPageErrorMessage(errorMessage);
    }
    
    
    /**
     * Add page success message to request attribute 
     * @param successMessage     Page success message
     */
    public static void addPageSuccessMessage(String successMessage) {
        
        if (!Util.isEmpty(successMessage)) {
            ServletRequestAttributes servletRequestAttributes = 
                (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
            
            Messages messages = BaseValidator.getMessages(servletRequestAttributes);
            
            messages.addSuccessMessage(successMessage);
            
            servletRequestAttributes.setAttribute(FieldValidationConstants.MESSAGES, 
                    messages, RequestAttributes.SCOPE_REQUEST);
        }
    }
    
    /**
     * Add page success message to request attribute 
     * @param bundle             Language property file id
     * @param key                Message key
     * @param defaultMessage     Default message
     * @param arguments          The arguments of message
     */
    public static void addPageSuccessMessage(String bundle, String key, String defaultMessage, String[] arguments) {
        
        String successMessage = MessageUtil.getText(bundle, key, defaultMessage, arguments);
        
        MessageUtil.addPageSuccessMessage(successMessage);
    }
    
}

 

分享到:
评论

相关推荐

    优雅集成i18n实现国际化信息返回.zip

    优雅集成i18n实现国际化信息返回是SpringBoot框架中一个重要的功能,它使得应用程序能够支持多语言环境,为全球用户提供更加友好的交互体验。在SpringBoot中,i18n(Internationalization)通常通过资源文件来实现,...

    微信公众平台 JAVA开发代码(实现菜单,自动回复,关注事件等)

    微信公众平台,开发者模式下的Java实现。实现菜单,自动回复,关注事件等!利用SpringMVC框架实现。如有疑问,可以关注我的博客~

    server_java_tcp_Server_

    最后是"MessageUtil.java",这个文件很可能包含了一些通用的工具方法,比如序列化和反序列化消息,处理网络数据的编码和解码,或者提供网络通信中的错误处理机制。在实际开发中,这样的工具类能提高代码的复用性和可...

    C#公共类通用类非常齐全

    (MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) RTF...

    JAVA分页原玛不知道对不对

    - **初始化**: 在构造函数中,通过`MessageUtil`实例化对象并获取消息列表的大小,然后调用`init`方法进行初始化。 - **初始化方法** (`init`): 这个方法接收两个参数:`totalRows`(总记录数)和`pageSize`(每页...

    c# 公用操作类库源码

    (MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) ...

    DotNet通用类库大全

    (MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) ...

    WHC.OrderWater.Commons 伍华聪 公共类源码 类库 帮助文档

    (MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) ...

    C#公共通用类

    (MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) RTF...

    C#公共类源代码 带帮助文档

    (MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) ...

    WHC.OrderWater.Commons公共类源码_文档[最新整理]

    (MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) ...

    aspnet公共类cs文件.rar

    (MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) RTF...

    WHC第三方控件

    (MessageUtil.cs) 13. 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 14. 托盘图标辅助类(NotifyIconHelper.cs) 15. 打印机类(POSPrinter.cs) 16. 图片、光标、图标、位图等资源操作辅助类...

    DotNet公用类(超多附文档)

    (MessageUtil.cs) 13.包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 14.托盘图标辅助类(NotifyIconHelper.cs) 15.打印机类(POSPrinter.cs) 16.图片、光标、图标、位图等资源操作辅助类...

    C#公用类库-IO、SerialPort等

    C#开发最全工具类,你想要的,里面都有 fileUtil,messageUtil,appconfigUtil,截屏类,excel,csv,table,datagridview,mail,进制,数组。各种工具类收集

    微信开发java封装好的代码(密文解析,xml转化,验证,获取返回消息

    MessageUtil,获得要回复的消息,解析密文xml和明文消息 RequestToSendUtil 传人请求地址,请求方法,请求参数(或null),可以发送http请求或https请求 SignUtil微信验证工具 CoreServlet具体的调用方法 Core...

Global site tag (gtag.js) - Google Analytics