"Неверный синтаксис аргумента" с MessageFormat

Я получил это html синтаксис, который заполняется с помощью MessageFormat:

private final String WRAPPABLE_HTML = "<html><head>"
        + "<style>div:after{text-decoration: line-through;}"
        + "</style></head>"
        + "<body style='width:{0}px;margin: 0 auto;'><div>{1}</div>{2}</body></html>";

если я позвоню:

MessageFormat.format(
              WRAPPABLE_HTML, 200, lCat,lDog);

Я получил:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Bad argument syntax: text-decoration: lin ...
at com.ibm.icu.text.MessagePattern.parseArg(MessagePattern.java:1106)
at com.ibm.icu.text.MessagePattern.parseMessage(MessagePattern.java:1042)

без style В разделе все отлично работает. Я использовал какой-либо keyword в пределах style атрибуты?

Спасибо за вашу помощь.

Стефан

1 ответ

Решение

Вы должны избежать фигурных скобок:

private final String WRAPPABLE_HTML = "<html><head>"
        + "<style>div:after'{'text-decoration: line-through;'{'"
                            ^                                ^
        + "</style></head>"
        + "<body style='width:{0}px;margin: 0 auto;'><div>{1}</div>{2}</body></html>";
Другие вопросы по тегам