Как я могу зарегистрировать глобального пользовательского редактора в Spring-MVC?

Первое, что пришло на ум я думал бы, что необходимо будет поддержать некоторую форму структуры данных в JavaScript, который отражает объекты в текущем выпадающем списке. Вам также была бы нужна ссылка на в настоящее время активное / выбранный пункт.

Каждый раз keyup или keydown запущен, обновите ссылку на активное / выбранный пункт в структуре данных. Для предоставления выделяющейся информации о UI добавьте или удалите имя класса, которое разрабатывается с помощью CSS на основе того, если объект активный/выбирает или нет.

кроме того, это не biggy, но innerHTML не является действительно стандартным (изучите createTextNode(), createElement(), и appendChild() для стандартных способов создать данные). Можно также хотеть заняться присоединением обработчиков событий в JavaScript вместо того, чтобы делать так в HTML-атрибуте.

24
задан Arthur Ronald 12 August 2009 в 18:51
поделиться

2 ответа

Вам необходимо объявить это в контексте вашего приложения:

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
  <property name="customEditors"><map>
    <entry key="java.math.BigDecimal">
      <bean class="org.springframework.beans.propertyeditors.CustomNumberEditor">
      ... <!-- specify constructor-args here -->
      </bean>
    </entry>
  </map></property>
</bean>

Подробности здесь

13
ответ дан 28 November 2019 в 22:56
поделиться

Если вы используете контроллер на основе аннотаций (Spring 2.5+), вы можете использовать WebBindingInitializer для регистрации редакторов глобальных свойств. Что-то вроде

public class GlobalBindingInitializer implements WebBindingInitializer {

    public void initBinder(WebDataBinder binder, WebRequest request) {
        binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    }

}

Итак, в файле контекста веб-приложения объявите

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="webBindingInitializer">
        <bean class="GlobalBindingInitializer"/>
    </property>
</bean>

Таким образом, все контроллеры на основе аннотаций могут использовать любой редактор свойств, объявленный в GlobalBindingInitializer.

13
ответ дан 28 November 2019 в 22:56
поделиться
Другие вопросы по тегам:

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