在我的示例中有一个带有 af:selectItems-attribute 的 selectOneMenu。选择项是从我的 bean 中解析的,如下所示:
<h:selectOneMenu value="#{bean.value}">
<f:selectItems value="#{bean.selectItems}" var="obj" itemValue="#{obj}" itemLabel="#{obj.name}"/>
</h:selectOneMenu>
我的 bean 中的 getSelectItems() 方法如下所示:
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 转义,我的页面向我显示了警报消息。
SelectItem的转义属性的默认值为“false”有什么原因吗?我该如何解决这个问题?(我使用 Mojarra 2.1.7)