Выход значения по умолчанию в Freemarker

Нет того. Если Вы действительно хотели использовать VB InputBox в C#, Вы можете. Просто добавьте ссылку на Microsoft.VisualBasic.dll, и Вы найдете его там.

, Но я предложил бы не использование это. Это - ужасный и устаревший IMO.

10
задан Massimiliano Fliri 12 August 2009 в 10:59
поделиться

2 ответа

Решение есть, хотя и не совсем тривиальное. Вы можете создать специальный TemplateLoader, который обертывает другие загрузчики шаблонов и вставляет <#escape x as x? Html> в пролог исходного текста шаблона и добавляет его в качестве эпилога.

Очевидные недостатки: - номера столбцов в первой строке будут сброшены - если ваш шаблон начинается с объявления <#ftl>, вам нужно вставить после него <#escape>.

2
ответ дан 3 December 2019 в 23:14
поделиться

Чтобы уточнить ответ Аттилы: вы можете использовать такой класс, как этот , а затем обернуть загрузчик шаблона следующим образом:

final TemplateLoader templateLoader = new ClassTemplateLoader(this.getClass(), templatePath) {
  /**
   * Replaces the normal template reader with something that changes the default
   * escaping to HTML as to avoid XSS attacks.
   */
  @Override
  public Reader getReader(Object templateSource, String encoding) throws IOException {
     return new WrappingReader(super.getReader(templateSource, encoding), "<#escape x as x?html>", "</#escape>");
  }
};

Если вы не включаете разрывы строк в добавленных частей вы не получите проблемы с нумерацией строк. Однако вы не можете использовать <#ftl> / [# ftl] с этим подходом.

5
ответ дан 3 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

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