如果我有一個managed bean如下:JSF2:限制性的cc:屬性到一個給定的對象類型的列表內
@ManagedBean
@RequestSchoped
public class Example {
private List<String> stringList;
private List<Long> longList;
// getters, setters, etc. down here
}
並且有其接受一個列表作爲屬性的定製組件:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html">
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="aList" type="java.util.List" />
</cc:interface>
<cc:implementation>
<!-- code is in here -->
</cc:implementation>
</html>
我怎麼能確保此工作:
<myComp:previousComponent aList="#{example.stringList}" />
但這並不:
<myComp:previousComponent aList="#{example.longList}" />
換句話說,我要爲cc:attribute
做如下:
<cc:attribute name="aList" type="java.util.List<java.lang.String>" />
然而,正如我們知道的XHTML不善待使用>或<。而且,只有在編譯時才檢查泛型,我不確定這將如何完成。有誰知道這是否可能?
這個方案好像閉上眼睛隱藏自己。它不能解決問題,只會使得未來找出原因更加困難。 – 2017-11-06 16:53:59