Jsf 2 如何用自定义类重写primefaces组件api类
我面临Jsf 2 如何用自定义类重写primefaces组件api类,jsf-2,primefaces,jsf-2.2,Jsf 2,Primefaces,Jsf 2.2,我面临p:treeTable中列的重复ID问题,即与下面链接中描述的问题相同 因此,我想实施上述解决方案中建议的解决方案。所以我想更改源代码,重新编译并使用jar,但我没有这样做的权限。我被要求通过扩展org.primefaces.component.api.UITree类或者在不改变primefaces jar中的实际类的情况下定制该类 现在假设我已经创建了一个名为UITree的类,并为我做了必要的更改。是否仍有注册此类的方法,以便可以使用my类代替primefaces类您有两个选项: 只需
p:treeTable
中列的重复ID问题,即与下面链接中描述的问题相同
因此,我想实施上述解决方案中建议的解决方案。所以我想更改源代码,重新编译并使用jar,但我没有这样做的权限。我被要求通过扩展org.primefaces.component.api.UITree
类或者在不改变primefaces jar中的实际类的情况下定制该类
现在假设我已经创建了一个名为UITree的类,并为我做了必要的更改。是否仍有注册此类的方法,以便可以使用my类代替primefaces类您有两个选项:
/WEB-INF/lib
中JAR中的类。因此,如果在WAR中遇到完全相同的类(通过FQN),那么它将从WAR而不是从JAR(在本例中是PrimeFaces’one)加载
的组件类型上的WAR项目的faces config.xml
中注册组件类:
<component>
<component-type>org.primefaces.component.TreeTable</component-type>
<component-class>com.example.component.CustomTreeTable</component-class>
</component>
org.primefaces.component.TreeTable
com.example.component.CustomTreeTable
同样在这里,在WAR的faces config.xml
中注册的任何组件类都比JAR的faces config.xml
中注册的组件类具有更高的优先级(在本例中为PrimeFaces'one)/WEB-INF/lib
中JAR中的类。因此,如果在WAR中遇到完全相同的类(通过FQN),那么它将从WAR而不是从JAR(在本例中是PrimeFaces’one)加载
的组件类型上的WAR项目的faces config.xml
中注册组件类:
<component>
<component-type>org.primefaces.component.TreeTable</component-type>
<component-class>com.example.component.CustomTreeTable</component-class>
</component>
org.primefaces.component.TreeTable
com.example.component.CustomTreeTable
同样在这里,在WAR的faces config.xml
中注册的任何组件类都比JAR的faces config.xml
中注册的组件类具有更高的优先级(在本例中为PrimeFaces'one)经过一番努力,我终于想出了解决问题的办法 我编写了一个类,它扩展了primefaces
TreeTable
类,如下所示,并实现了链接中指定的方法visitColumns
您必须重写子类中调用visitColumns
方法的所有方法
现在在faces-config.xml中注册它,如下所示
<component>
<component-type>org.primefaces.component.TreeTable</component-type>
<component-class>com.example.component.MyTreeTable</component-class>
</component>
org.primefaces.component.TreeTable
com.example.component.MyTreeTable
我相信这是最简单的方法,解决了我的问题。回答我自己的问题,这样可以帮助别人。经过一番努力,我找到了解决问题的方法 我编写了一个类,它扩展了primefaces
TreeTable
类,如下所示,并实现了链接中指定的方法visitColumns
您必须重写子类中调用visitColumns
方法的所有方法
现在在faces-config.xml中注册它,如下所示
<component>
<component-type>org.primefaces.component.TreeTable</component-type>
<component-class>com.example.component.MyTreeTable</component-class>
</component>
org.primefaces.component.TreeTable
com.example.component.MyTreeTable
我相信这是最简单的方法,解决了我的问题。回答我自己的问题以帮助他人。谢谢你的回答。我已经找到了这样做的方法,我相信这也更容易,我把它作为一个答案贴了出来。感谢战争和其他事情。学到了一些新东西:)谢谢你的回答。我已经找到了这样做的方法,我相信这也更容易,我把它作为一个答案贴了出来。感谢战争和其他事情。学到了一些新东西:)