2015-06-23 4 views
1

Я получил этот html синтаксис, который заполняется с помощью MessageFormat:"Плохой аргумент синтаксиса" с 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?

Thx для вашей помощи.

Стефан

+1

Вы, вероятно, следует экранировать фигурные скобки внутри тега стиля. – Eran

+0

ОК, вот и все! большое спасибо! Если вы опубликуете его в качестве ответа, я соглашусь с ним ... –

+0

Добро пожаловать! – Eran

ответ

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>"; 
+0

Как сбежать будет лучшим ответом ... Нет ??? – Codebender

+0

@AbishekManoharan хорошая точка :) – Eran