Spring: выход из входа при привязке для управления

Они оба ориентированы на многопотоковое исполнение до такой степени, что Ваше приложение не откажет, если несколько потоков назовут их на том же дескрипторе файла. Однако без некоторой блокировки прикладного уровня, независимо от того, что записано, мог быть чередован.

8
задан Arun P Johny 15 December 2010 в 11:30
поделиться

1 ответ

Если вы используете FormController, вы можете зарегистрировать новый редактор свойств, переопределив метод initBinder (HttpServletReques, ServletRequestDataBinder). Этот редактор свойств может избежать внедрения HTML, JavaScript и SQL.

Если вы используете редактор свойств, значения из объекта запроса будут обработаны редактором перед назначением объекту команды.

Когда мы регистрируем редактор мы должны указать тип элемента, значения которого должны обрабатываться редактором.

Извините, теперь я не знаю синтаксис метода. Но я уверен, что именно так мы и достигли этого.

EDITED

Я думаю, что следующий синтаксис может работать

В вашем контроллере переопределите следующий метод, как показано

    @Override
    protected void initBinder(HttpServletRequest request,
        ServletRequestDataBinder binder) throws Exception {
        super.initBinder(request, binder);

        binder.registerCustomEditor(String.class, 
                    new StringEscapeEditor(true, true, false));
    }

Затем создайте следующий редактор свойств

public class StringEscapeEditor extends PropertyEditorSupport {

    private boolean escapeHTML;
    private boolean escapeJavaScript;
    private boolean escapeSQL;

    public StringEscapeEditor() {
        super();
    }

    public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript,
            boolean escapeSQL) {
        super();
        this.escapeHTML = escapeHTML;
        this.escapeJavaScript = escapeJavaScript;
        this.escapeSQL = escapeSQL;
    }

    public void setAsText(String text) {
        if (text == null) {
            setValue(null);
        } else {
            String value = text;
            if (escapeHTML) {
                value = StringEscapeUtils.escapeHtml(value);
            }
            if (escapeJavaScript) {
                value = StringEscapeUtils.escapeJavaScript(value);
            }
            if (escapeSQL) {
                value = StringEscapeUtils.escapeSql(value);
            }
            setValue(value);
        }
    }

    public String getAsText() {
        Object value = getValue();
        return (value != null ? value.toString() : "");
    }
}

] Надеюсь, это поможет вам

10
ответ дан 5 December 2019 в 17:39
поделиться
Другие вопросы по тегам:

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