📄 resources.java.svn-base
字号:
* @param va The Validator Action * @param field The Validator Field */ public static String getMessage(MessageResources messages, Locale locale, ValidatorAction va, Field field) { String[] args = getArgs(va.getName(), messages, locale, field); String msg = (field.getMsg(va.getName()) != null) ? field.getMsg(va.getName()) : va.getMsg(); return messages.getMessage(locale, msg, args); } /** * Gets the <code>Locale</code> sensitive value based on the key passed * in. * * @param application the servlet context * @param request the servlet request * @param defaultMessages The default Message resources * @param locale The locale * @param va The Validator Action * @param field The Validator Field */ public static String getMessage(ServletContext application, HttpServletRequest request, MessageResources defaultMessages, Locale locale, ValidatorAction va, Field field) { Msg msg = field.getMessage(va.getName()); if ((msg != null) && !msg.isResource()) { return msg.getKey(); } String msgKey = null; String msgBundle = null; MessageResources messages = defaultMessages; if (msg == null) { msgKey = va.getMsg(); } else { msgKey = msg.getKey(); msgBundle = msg.getBundle(); if (msg.getBundle() != null) { messages = getMessageResources(application, request, msg.getBundle()); } } if ((msgKey == null) || (msgKey.length() == 0)) { return "??? " + va.getName() + "." + field.getProperty() + " ???"; } // Get the arguments Arg[] args = field.getArgs(va.getName()); String[] argValues = getArgValues(application, request, messages, locale, args); // Return the message return messages.getMessage(locale, msgKey, argValues); } /** * Gets the <code>ActionMessage</code> based on the * <code>ValidatorAction</code> message and the <code>Field</code>'s arg * objects. * <p> * <strong>Note:</strong> this method does not respect bundle information * stored with the field's <msg> or <arg> elements, and localization * will not work for alternative resource bundles. This method is * deprecated for this reason, and you should use * {@link #getActionMessage(Validator,HttpServletRequest,ValidatorAction,Field)} * instead. * * @param request the servlet request * @param va Validator action * @param field the validator Field * @deprecated Use getActionMessage(Validator, HttpServletRequest, * ValidatorAction, Field) method instead */ public static ActionMessage getActionMessage(HttpServletRequest request, ValidatorAction va, Field field) { String[] args = getArgs(va.getName(), getMessageResources(request), RequestUtils.getUserLocale(request, null), field); String msg = (field.getMsg(va.getName()) != null) ? field.getMsg(va.getName()) : va.getMsg(); return new ActionMessage(msg, args); } /** * Gets the <code>ActionMessage</code> based on the * <code>ValidatorAction</code> message and the <code>Field</code>'s arg * objects. * * @param validator the Validator * @param request the servlet request * @param va Validator action * @param field the validator Field */ public static ActionMessage getActionMessage(Validator validator, HttpServletRequest request, ValidatorAction va, Field field) { Msg msg = field.getMessage(va.getName()); if ((msg != null) && !msg.isResource()) { return new ActionMessage(msg.getKey(), false); } String msgKey = null; String msgBundle = null; if (msg == null) { msgKey = va.getMsg(); } else { msgKey = msg.getKey(); msgBundle = msg.getBundle(); } if ((msgKey == null) || (msgKey.length() == 0)) { return new ActionMessage("??? " + va.getName() + "." + field.getProperty() + " ???", false); } ServletContext application = (ServletContext) validator.getParameterValue(SERVLET_CONTEXT_PARAM); MessageResources messages = getMessageResources(application, request, msgBundle); Locale locale = RequestUtils.getUserLocale(request, null); Arg[] args = field.getArgs(va.getName()); String[] argValues = getArgValues(application, request, messages, locale, args); ActionMessage actionMessage = null; if (msgBundle == null) { actionMessage = new ActionMessage(msgKey, argValues); } else { String message = messages.getMessage(locale, msgKey, argValues); actionMessage = new ActionMessage(message, false); } return actionMessage; } /** * Gets the message arguments based on the current <code>ValidatorAction</code> * and <code>Field</code>. * * @param actionName action name * @param messages message resources * @param locale the locale * @param field the validator field */ public static String[] getArgs(String actionName, MessageResources messages, Locale locale, Field field) { String[] argMessages = new String[4]; Arg[] args = new Arg[] { field.getArg(actionName, 0), field.getArg(actionName, 1), field.getArg(actionName, 2), field.getArg(actionName, 3) }; for (int i = 0; i < args.length; i++) { if (args[i] == null) { continue; } if (args[i].isResource()) { argMessages[i] = getMessage(messages, locale, args[i].getKey()); } else { argMessages[i] = args[i].getKey(); } } return argMessages; } /** * Gets the message arguments based on the current <code>ValidatorAction</code> * and <code>Field</code>. * * @param application the servlet context * @param request the servlet request * @param defaultMessages Default message resources * @param locale the locale * @param args The arguments for the message */ private static String[] getArgValues(ServletContext application, HttpServletRequest request, MessageResources defaultMessages, Locale locale, Arg[] args) { if ((args == null) || (args.length == 0)) { return null; } String[] values = new String[args.length]; for (int i = 0; i < args.length; i++) { if (args[i] != null) { if (args[i].isResource()) { MessageResources messages = defaultMessages; if (args[i].getBundle() != null) { messages = getMessageResources(application, request, args[i].getBundle()); } values[i] = messages.getMessage(locale, args[i].getKey()); } else { values[i] = args[i].getKey(); } } } return values; } /** * Initialize the <code>Validator</code> to perform validation. * * @param key The key that the validation rules are under (the * form elements name attribute). * @param bean The bean validation is being performed on. * @param application servlet context * @param request The current request object. * @param errors The object any errors will be stored in. * @param page This in conjunction with the page property of a * <code>Field<code> can control the processing of * fields. If the field's page is less than or equal * to this page value, it will be processed. */ public static Validator initValidator(String key, Object bean, ServletContext application, HttpServletRequest request, ActionMessages errors, int page) { ValidatorResources resources = Resources.getValidatorResources(application, request); Locale locale = RequestUtils.getUserLocale(request, null); Validator validator = new Validator(resources, key); validator.setUseContextClassLoader(true); validator.setPage(page); validator.setParameter(SERVLET_CONTEXT_PARAM, application); validator.setParameter(HTTP_SERVLET_REQUEST_PARAM, request); validator.setParameter(Validator.LOCALE_PARAM, locale); validator.setParameter(ACTION_MESSAGES_PARAM, errors); validator.setParameter(Validator.BEAN_PARAM, bean); return validator; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -