java在Liferay首选项中存储包含双引号的字符串
我正在Liferay 6.1配置页面中存储首选项,如下所示,没有任何问题
prefs.setValue(prefName, request.getParameter(prefName));
prefs.store();
然后我就可以这样取回它们
prefs.getValue(prefName, StringPool.BLANK);
当存储的字符串不包含双引号,但在引号被“截断”后它包含字符串的一部分时,这种方法可以正常工作。 我猜这是一些url编码/解码问题,我不知道如何解决它。有什么想法吗
# 1 楼答案
对我有用。您是否碰巧在输入字段中使用了首选项?在这种情况下,你显然必须避开偏好。想象一下这个场景:让您的首选项的值为
test"test
。现在在如下输入字段中使用它们:这将导致像这样的非法HTML
浏览器自然只会将test显示为value,因为属性以结果引号终止。幸运的是,Liferay有
com.liferay.portal.kernel.util.HtmlUtil
可供您使用,例如尝试这将生成如下HTML:
这是很好的分析,并给出了预期的结果。当你这么做的时候,检查你在HtmlTil中找到的其他转义方法
如果这不能解决您的问题,请提供您正在使用的版本号