Я хочу определить функцию JavaScript для каждого экземпляра композитного компонента JSF.Как я могу создать уникальное имя переменной JavaScript из JSF clientId?
Для этого внутри компонента, я пытаюсь что-то вроде:
<h:outputScript>
function myFunction_#{component.clientId}(day) {
//do my instance specific stuff
}
</h:outputScript>
Конкретно я пытаюсь использовать эту функцию в календаре RichFaces, как это:
<rich:calendar id="calendar" ... dayClassFunction="myFunction_#{component.clientId}">
Но ClientId не обязательно содержит только символы, которые действительны в именах переменных JavaScript.
Есть ли способ вычислить хеш-память md5 или что-то подобное псевдо-уникальному с clientId (или что-то еще!) Внутри выражения JSF EL?
Мне нужна его конкретная спецификация, потому что возвращаемое значение зависит от значений экземпляра, а атрибут dayClassFunction не принимает функцию, которая принимает сам clientId или что-то подобное в качестве аргумента.
Это было бы относительно просто, если '' 'внутри этой функции был узел DOM, созданный для' '. Не так ли в JSF? –
Действительно! Спасибо, я только что проверил, это не узел DOM, но все-таки специфический для экземпляра объект JS, это очень полезно. – user777
. Вы идете об этом неправильно. Чистый путь задают и отвечают здесь: http://stackoverflow.com/questions/12615556/integrate-javascript-in-jsf-composite-component-the-clean-way Просто повторно используйте одну и ту же функцию и извлеките данные составного компонента там. – BalusC