我正在使用Primefaces Premium主题我在其类路径中添加了必要的jar但遇到了一个我无法调试的错误,因为它似乎与java无关,但与xml / jsf相关
面-config.xml中
此行找到多个注释: - cvc-pattern-valid:值'primefaces-sentinel'在模式方面不是facet-valid'($ | | \ p {L})(\ p {L} | \ p {Nd} | | $)*'类型为'null'。 - cvc-complex-type.2.2:元素'name'必须没有元素[children],值必须 是有效的。
primefaces-sentinel.taglib.xml
cvc-complex-type.2.4.a:从元素'description'开始发现无效内容。其中一个'{“http:// java.sun.com/xml/ns/javaee":handler-class," http://java.sun.com/xml/ns/javaee“:behavior,”http:// java.sun.com/xml/ns/javaee":component,“http://java.sun.com/xml/ns/javaee”:转换器,“http:// java.sun.com/xml/ns/javaee":validator,“http://java.sun.com/xml/ns/javaee”:source}'是预期的。
答案 0 :(得分:2)
很遗憾,您没有显示导致问题的代码。所以它是根据错误消息猜测的。
<强>面-config.xml中强>
在此行找到多个注释: - cvc-pattern-valid:值'primefaces-sentinel'对于模式'($ || \ p {L})不是facet-valid(\ p {L} | \ p {Nd} || $)*'类型为'null'。 - cvc-complex-type.2.2:元素'name'必须没有元素[children],并且该值必须有效。
那么,你有faces-config.xml
以下的元素吗?
<name>primefaces-sentinel</name>
给定正则表达式模式($|| \p{L})(\p{L}|\p{Nd}||$)*
,连字符在<name>
元素中确实无效。
删除连字符或使用与给定模式匹配的其他名称:
<name>sentinel</name>
<强> primefaces-sentinel.taglib.xml 强>
cvc-complex-type.2.4.a:从元素'description'开始发现无效内容。其中一个'{“http://java.sun.com/xml/ns/javaee”:处理程序类,“http://java.sun.com/xml/ns/javaee”:行为,“http://java.sun.com/xml/ns/javaee”:组件,“http://java.sun.com/xml/ns/javaee”:转换器,“{{3 “}:”验证者,“http://java.sun.com/xml/ns/javaee”:来源}'是预期的。
预期元素列表中缺少<tag-name>
,因此您在primefaces-sentinel.taglib.xml
中有以下排序?
<tag>
<tag-name>...</tag-name>
<description>...</description>
...
</tag>
鉴于XSD文件中定义的预期元素排序,这确实无效。
在他们周围交换:
<tag>
<description>...</description>
<tag-name>...</tag-name>
...
</tag>