JSF2.0复合组件ID生成
我正在WebLogic11g上使用JSF2.0创建一个新的Web应用程序。我正在使用JSF Ajax进行表单提交。我对JSF还很陌生,所以仍在学习诀窍。主页在jQuery选项卡上有3个表单。原始代码有许多重复的输入字段,如用户名和密码等,id前面有一个表单id,即myform1:userName。我决定对复制字段使用复合组件是个好主意。这是我的组件代码:JSF2.0复合组件ID生成,jsf,components,jsf-2,Jsf,Components,Jsf 2,我正在WebLogic11g上使用JSF2.0创建一个新的Web应用程序。我正在使用JSF Ajax进行表单提交。我对JSF还很陌生,所以仍在学习诀窍。主页在jQuery选项卡上有3个表单。原始代码有许多重复的输入字段,如用户名和密码等,id前面有一个表单id,即myform1:userName。我决定对复制字段使用复合组件是个好主意。这是我的组件代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html">
<composite:interface>
<composite:attribute name="value" required="true"/>
</composite:interface>
<composite:implementation>
<label for="#{cc.id}">User Name</label>
<h:inputText
id="#{cc.id}"
size="15"
value="#{cc.attrs.value}"
required="true"
label="User Name">
</h:inputText>
</composite:implementation>
</html>
下面是对xhtml中组件的调用:
<p>
<cc:userName id="userName" value="#{soapTestingBackingBean.userName}"/>
</p>
现在的问题是,我的所有ID都添加了一个元素,因此变成了myForm1:userName:userName。虽然这不是一个显示障碍,但它确实意味着我的javascript现在必须引用长ID,在Ajax调用中也是如此,我通常执行@form,但呈现特定的元素。我试图使代码尽可能可读和可维护。所以,如果有人知道这是不是有一个优雅的作品,或者我错过了什么神奇的属性来关闭它,我将不胜感激。我确实尝试了tomahawk库中的forceID属性,但这只会在Ajax调用中造成额外的问题。谢谢 一些java脚本库jQuery对JSF2.0IDS表单的新格式有问题:elementId-因此不使用
$(function() {
$( "#datepicker" ).datepicker();
});
我不得不使用
$(function() {
$(document.getElementById('addform:datepicker')).datepicker();
});
你不必那样做。以下语法是我使用的:$[id=islRequestForm:requestData:requestData].toggle;