Java JSF、validateRegex和&;(安培)
我想测试inputText字段,看看它的内容是否匹配任何内容,但至少有一个&(和) 当我在validateRegex的模式字段内测试Java JSF、validateRegex和&;(安培),java,regex,jsf,Java,Regex,Jsf,我想测试inputText字段,看看它的内容是否匹配任何内容,但至少有一个&(和) 当我在validateRegex的模式字段内测试&或\&或\\&时,我总是收到以下错误: javax.faces.view.facelets.FaceletException:Error-Parsing/index.xhtml:Error-tracked[line:71]Le nom de l'identitédoit immédiation suivre Le caractère”和“dans la référ
&
或\&
或\\&
时,我总是收到以下错误:
javax.faces.view.facelets.FaceletException:Error-Parsing/index.xhtml:Error-tracked[line:71]Le nom de l'identitédoit immédiation suivre Le caractère”和“dans la référence d'entité”
我得到了500个错误
我怎样才能摆脱这个角色
更新 我已经测试过了
<p:inputText id="player_name_register" value="#{login.name}">
<f:validateRegex pattern="[&]{3, 50}" />
</p:inputText>
但是我的输入文本不再显示。使用标记转义符号(&):
]]>
如果要在Javascript中转义符号和,lt(),请在Javascript中添加CDATA部分,但对其进行注释:
<script>
//<![CDATA[
funcion lessThan(a, b) {
return a < b; //no problems in Facelets
}
//]]>
</script>
//
带引号的字符串检查有帮助吗<代码>'&;'代码>Facelets是一种基于XML的视图技术。整个视图必须是语法有效的XML。与&
类似,
需要作为&代码>,
和
时,它们应该被解释为是
(此处,…
表示正则表达式的剩余部分)
CDATA块不起作用,因为它基本上会转义整个内容,包括JSF组件。引用转义的XML字符毫无意义。在被FaceletsXML解析器解析后,&代码>再次变成&
Update根据您的更新,{3,50}
中的空格导致regex语法错误。移除它
在JSF组件周围使用CDATA块根本不是正确的解决方案。它将XML转义整个内容,导致p:inputText
以普通方式发出,而不是组件的HTML表示。这在尝试打印小于()等其他符号时没有帮助。它不需要引用。我的回答是为了检查java方面,我想我误解了:(CDATA非常适合JS代码,但不适合JSF组件。请先自己试用,并查看生成的HTML输出。谢谢,这是导致问题的空间。问题解决了!
<![CDATA[
<h:outputText value="Sun & Moon" />
]]>
<script>
//<![CDATA[
funcion lessThan(a, b) {
return a < b; //no problems in Facelets
}
//]]>
</script>