в моем примере есть selectOneMenu с атрибутом f: selectItems. Элементы select разрешены из моего bean следующим образом:
<h:selectOneMenu value="#{bean.value}">
<f:selectItems value="#{bean.selectItems}" var="obj" itemValue="#{obj}" itemLabel="#{obj.name}"/>
</h:selectOneMenu>
Метод getSelectItems() в моем bean выглядит следующим образом:
public List<MyObject> getSelectItems() {
List<MyObject> list = new LinkedList<MyObject>();
MyObject obj = new MyObject("Peter");
list.add(obj);
return list;
}
Объекты, которые отображаются, являются простыми объектами с атрибутом "имя".
Ничего особенного до этого момента. Но теперь я меняю свой метод на это:
public List<MyObject> getSelectItems() {
List<MyObject> list = new LinkedList<MyObject>();
MyObject obj = new MyObject("<script>alert('xss is bad');</script>");
list.add(obj);
return list;
}
javascript не экранируется MenuRenderer-Class, и моя страница показывает мне сообщение-предупреждение.
Есть ли причина, по которой значение по умолчанию для escape-атрибута SelectItem является "false"? Как я могу исправить эту проблему? (Я использую Mojarra 2.1.7)