我必须创建一个JSF复合组件,我必须传递如下属性:
<composite:attribute name="noteList" type="XXX" required="true"></composite:attribute>
如果它是类型为Note的List,我应该在type属性中传递什么课吗?
我知道我可以让type="java.util。"列表",但我如何使它特定于类型为Note的列表?
但是我如何使它特定于List类型注释
不幸的是,你不能。它是在运行时确定的,在此期间泛型类型信息已经丢失。从技术上讲,可以使用反射技巧来解决这个问题,但是JSF和EL规范人员可能有他们自己不指定它的原因。
最好的办法是用自定义子类替换它,如下所示:
public class Notes extends ArrayList<Note> {}
<cc:attribute ... type="com.example.model.Notes" />