Java 使用JSF1.x时,EL可以从集合中读取<&燃气轮机;找到一个价值?
我有以下xhtml:Java 使用JSF1.x时,EL可以从集合中读取<&燃气轮机;找到一个价值?,java,jsf,el,jsf-1.2,Java,Jsf,El,Jsf 1.2,我有以下xhtml: <s:fragment rendered="#{selectCat.categoryTypes.contains('unclickable')}"> <h:outputText value="DONT CLICK #{selectCat.webName}" /> </s:fragment> <s:fragment rendered="#{selectCat.categoryTypes eq null}">
<s:fragment
rendered="#{selectCat.categoryTypes.contains('unclickable')}">
<h:outputText value="DONT CLICK #{selectCat.webName}" />
</s:fragment>
<s:fragment rendered="#{selectCat.categoryTypes eq null}">
<a href="/category/#{_category.fullName}"> #{selectCat.webName}</a>
</s:fragment>
我在试着看这个类型是否不可读取
后端bean读取:
@ManyToMany(fetch = FetchType.LAZY, targetEntity = C_Type.class)
@JoinTable(name = "Category_Type", joinColumns = @JoinColumn(name = "CategoryId"), inverseJoinColumns = @JoinColumn(name = "TypeId"))
@XmlTransient
public Set<C_Type> getCategoryTypes() {
for (C_Type cc : categoryTypes) {
System.out.println("=============="+cc.getC_type()+"==============");
}
return categoryTypes;
}
@ManyToMany(fetch=FetchType.LAZY,targetEntity=C_Type.class)
@JoinTable(name=“Category\u Type”,joinColumns=@JoinColumn(name=“CategoryId”),inverseJoinColumns=@JoinColumn(name=“TypeId”))
@XmlTransient
公共集getCategoryTypes(){
对于(C_类型cc:categoryTypes){
System.out.println(“======================”+cc.getC_type()+“===================”);
}
返回类别类型;
}
我做错了什么,或者我需要做什么才能将链接显示为不可链接?在前端?谢谢对于
jsf1.x
#{selectCat.categoryTypes.contains('unclickable')}
现在,对于解决方案,请使用下面的指针尝试自定义taglib
函数
在web.xml
facelets.LIBRARIES
指向自定义标签库的路径/WEB-INF/tomahawk.taglib.xml;
将标记库中的方法定义为:
http://www.client.com/product
...
包含
com.XXX.XXX.XXX.JavaClass
Boolean包含(java.util.Set、java.lang.String)
...
将com.XXX.XXX.XXX.JavaClass
中的java方法定义为
public static Boolean contains(Set setOfObjects, String value){
//... Assuming you are checking where value, a string, is available in Set or not
}
在XHTML中声明名称空间
xmlns:g="http://www.client.com/product"
最后用xhtml调用它
希望对你有帮助 如果你需要链接为“不可链接”(让我说,相当奇怪),将其显示为文本,而不是链接。是的,我们首先检查类别类型,如果不是链接,则将其显示为文本。否则我们把它连接起来作为一个链接。但是如何读取返回的集合?
C\u Type
不是字符串
。是什么让你认为它们会在对方的equals()
上返回true?给定
标记,OP使用的是JBoss Seam,因此也包含JBoss EL。这与JSF1.2配合使用效果很好。另请参见,您的困惑是由于假设EL中的调用方法在某种程度上特定于JSF2.0而引起的。这是不真实的。它特定于EL2.2(和JBossEL)。