2014-08-27 1 views
0

Я хранения настроек на странице конфигурации 6.1 Liferay, как показано ниже, без каких-либо проблемСохранение строка, содержащая двойные кавычки в настройках LifeRay

prefs.setValue(prefName, request.getParameter(prefName)); 
prefs.store(); 

Тогда я могу получить их, как это

prefs.getValue(prefName, StringPool.BLANK); 

Это отлично работает, когда хранящаяся строка не содержит двойных кавычек, но когда она выполняет часть строки после того, как цитата получает «обрезание». Я предполагаю, что это некоторая проблема кодирования/декодирования url, и я не уверен, как обойти ее. Есть идеи?

ответ

0

Работы для меня. Используете ли вы предпочтения в поле ввода? В этом случае вам, очевидно, придется избегать предпочтений. Представьте себе этот сценарий: пусть значение для ваших предпочтений будет test"test. Теперь использовать их в поле ввода, как это:

<input type="text" value="<%=prefs%>"/> 

Это приведет к незаконному HTML, как этот

<input type="text value="test"test"/> 

и браузер, естественно, только показать тест как значение - как атрибут прекращаются с итоговая цитата. К счастью, Liferay имеет com.liferay.portal.kernel.util.HtmlUtil, который вы можете использовать, например. попробуйте

<input type="text" value="<%=HtmlUtil.escapeAttribute(prefs)%>"/> 

Это будет генерировать HTML как это:

<input type="text" value="test&#x22;test"/> 

, который хорошо интерпретируемое и дает ожидаемый результат. И пока вы на нем, проверьте другие методы эвакуации, которые вы найдете в HtmlUtil.

Если это не поможет решить вашу проблему, укажите номер версии, которую вы используете.