matches
возвращает true, если вся строка соответствует заданному шаблону. find
пытается найти подстроку, которая соответствует шаблону.
Любая вещь, определенная за пределами ui: состав игнорируется. Поэтому разместите свой контент внутри этого тега, и он будет работать: Что-то вроде этого:
<ui:composition template="/WEB-INF/tags/layout.xhtml">
<ui:include src="/tags/common.xhtml"></ui:include>
<ui:define name="content">
<h:outputScript name="validation.js" library="javascript"></h:outputScript>