Как настроить глобальный префикс и суффикс, используемый в каждом поле ошибки в Spring? - PullRequest
0 голосов
/ 22 сентября 2009

В Struts вы можете указать глобальный префикс и суффикс в файле комплекта ресурсов. Что-то вроде:

errors.prefix=<div class="error">
errors.suffix=</div>

Таким образом,

будет добавлено перед каждым будет добавлено после каждого.

Так как я могу получить тот же эффект, используя теги Spring

С уважением,

Ответы [ 2 ]

2 голосов
/ 22 сентября 2009

С чего бы ты? Spring отображает ошибки внутри тега <span>, класс css которого вы указываете с помощью атрибута cssClass <spring:errors>. Затем вы можете стилизовать его так, как хотите, с помощью CSS.

<span> само по себе настраивается тоже , по-видимому (я только что посмотрел, мне никогда не нужно было его менять):

<spring:errors element="div" cssClass="errorBox" path="..."/>

будет переносить ошибки в <div class="errorBox"></div>

0 голосов
/ 05 февраля 2010

Существует обходной путь, но вы должны реализовать пользовательский источник сообщений

public class CustomMessageSource extends ResourceBundleMessageSource {

    private String prefix;
    private String suffix;

    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }

    public void setSuffix(String suffix) {
        this.suffix = suffix;
    }

    public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) {
        if(code.startsWith("typeMismatch"))
            return this.prefix + super.getMessage(resolvable, locale) + this.suffix;

        if(code.startsWith("errors"))
            return this.prefix + super.getMessage(resolvable, locale) + this.suffix;

        return super.getMessage(code, args, defaultMessage, locale);
    }

    public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException {
        if(code.startsWith("typeMismatch"))
            return this.prefix + super.getMessage(resolvable, locale) + this.suffix;

        if(code.startsWith("errors"))
            return this.prefix + super.getMessage(resolvable, locale) + this.suffix;

        return super.getMessage(code, args, locale);
    }

    public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException {
        String [] errors = resolvable.getCodes();
        for(String error: errors) {
            if(error.startsWith("typeMismatch"))
                return this.prefix + super.getMessage(resolvable, locale) + this.suffix;

            if(error.startsWith("errors"))
                return this.prefix + super.getMessage(resolvable, locale) + this.suffix;
        }

        return super.getMessage(resolvable, locale);
    }

}

Теперь вы должны определить свой собственный источник сообщений

<bean id="messageSource" class="br.com.some.CustomMessageSource">
    <property name="prefix" value="<div class=\"error\">"/>
    <property name="suffix" value="</div>"/>
    <property name="basenames">
        <list>
             <value>messages</value>
             <value>errors</value>
        </list>
    </property name="basenames">
</bean>

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...