JSF - Как установить параметр для переопределения сообщений об ошибках проверки [duplicate]

пример howto:

как? путем изменения одной ссылки на другую ссылку

:

setRColor(pl.mylib.R.class,"endColor",pl.myapp.R.color.startColor);
// override app_name in lib R class  
setRString(pl.mylib.R.class,"app_name",pl.myapp.R.string.app_name);

базовые методы:

public static void setRColor(Class rClass, String rFieldName, Object newValue) {
    setR(rClass, "color", rFieldName, newValue);
}

public static void setRString(Class rClass, String rFieldName, Object newValue) {
    setR(rClass, "string", rFieldName, newValue);
}

// AsciiStrings.STRING_DOLAR = "$";
public static void setR(Class rClass, String innerClassName, String rFieldName, Object newValue) {
    setStatic(rClass.getName() + AsciiStrings.STRING_DOLAR  + innerClassName, rFieldName, newValue);
}

вспомогательные методы:

public static boolean setStatic(String aClassName, String staticFieldName, Object toSet) {
    try {
        return setStatic(Class.forName(aClassName), staticFieldName, toSet);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
        return false;
    }
}

public static boolean setStatic(Class aClass, String staticFieldName, Object toSet) {
    try {
        Field declaredField = aClass.getDeclaredField(staticFieldName);
        declaredField.setAccessible(true);
        declaredField.set(null, toSet);
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

@ bradenV2 Мое приложение поддерживает многие языки, поэтому я хотел взять строку из моего strings.xml, которая в настоящее время используется, и изменить ее, а затем использовать ее - atuljangra Mar 12 '12 at 22:04

blockquote>

ps вышеупомянутое решение хорошо, например, когда u хочет вставлять некоторые данные в уже скомпилированный lib / jar. Но если вы хотите локализовать строки, просто создайте папку под res per LANG CODE, например, значения CC, где cc - код lang (значения-de, values-cs) и т. Д.

, тогда у вас есть 2 варианта:

  1. «встраивать» зависящий от системы выбор языка - на основе выбранного устройства lang
  2. с помощью создания ресурсов для конфигурации - вы решаете, какой из языков показывать

, как это:

configuration = new Configuration(resources.getConfiguration());
configuration.setLocale(targetLocale);
String localized = Context.createConfigurationContext(configuration)
    .getResources()
    .getString(resourceId);

3
задан BalusC 23 January 2012 в 23:38
поделиться

1 ответ

{0} представлен атрибутом label входного компонента на стороне представления, который по умолчанию имеет идентификатор клиента, когда он не указан.

Например

<h:inputText value="#{bean.customer.name}" label="Customer name">

Вам также необходимо переопределить формат JSF по умолчанию для сообщений проверки валидатора. Вам нужно добавить следующую запись в пакет сообщений JSF, как указано в <message-bundle> в faces-config.xml:

javax.faces.validator.BeanValidator.MESSAGE = {1} {0}

. В этой конкретной записи {1} будет ярлыком входного компонента JSF и {0} будет сообщением валидатора компонента.

4
ответ дан BalusC 26 August 2018 в 22:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: