Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 如何在运行时初始化JSF2.0textfield?_Jsf 2_Primefaces_Runtime_Seam3 - Fatal编程技术网

Jsf 2 如何在运行时初始化JSF2.0textfield?

Jsf 2 如何在运行时初始化JSF2.0textfield?,jsf-2,primefaces,runtime,seam3,Jsf 2,Primefaces,Runtime,Seam3,我想在运行时初始化我的文本字段。例如,我有这样的输入文本: <p:inputText value="#{myBean.value}" id="inputText" /> 使用jsf 2.0可以做到这一点吗?您可以通过将组件绑定到bean来做到这一点: <p:inputText binding="#{bean.input}" ... /> 然而,这不是推荐的方法。您应该将各个属性绑定到bean属性 <p:inputText ... maxlength="#{bea

我想在运行时初始化我的文本字段。例如,我有这样的输入文本:

<p:inputText value="#{myBean.value}" id="inputText" />

使用jsf 2.0可以做到这一点吗?

您可以通过将组件绑定到bean来做到这一点:

<p:inputText binding="#{bean.input}" ... />
然而,这不是推荐的方法。您应该将各个属性绑定到bean属性

<p:inputText ... maxlength="#{bean.maxlength}" style="#{bean.style}" />
更重要的是,如果你的应用程序设计得很好,那么你应该已经有了这样一个bean对象(为什么/如何在运行时指定它?)。改为将其作为托管bean的属性,以便可以执行以下操作:

<p:inputText ... maxlength="#{bean.attributes.maxlength}" style="#{bean.attributes.style}" />

为此,您可以使用以下代码从jsf框架获取组件对象

UIComponent componentObj = FacesContext.getCurrentInstance().getViewRoot().findComponent(id)
然后,可以在标记组件类型中键入cast组件对象,就像使用inputText一样

HtmlInputText inputTextObj = (HtmlInputText) componentObj;
和HtmlInputText类具有标记中所有可用属性的所有getter setter 因此,您可以设置如下值

inputTextObj.setMaxlength(15);
inputTextObj.setStyle(....);
inputTextObj.setDisabled();
inputTextObj.setReadonly();

提前谢谢。我想在gridPane中列出所有来自db的参数值。但是在它自己的UIComponent中显示的值的数量。例如,这里是我的数据库记录;1) type=text,value=“systemName”,maxChar=“10”(将显示在inputText中)2)type=date,value=“createdTime”(将显示在日历组件中)3)type=number,value=“versionNumber”(将只允许在inputText中显示数字),如您所见,我的页面上会有不同类型的组件,而且我需要在运行时对其进行自定义。这是我的问题。参数值?你是说属性值,对吗?嗯,你可以继续装订。另一种方法是创建一个自定义标记文件。@BalusC:Everytimes BalusC甚至让我自己都大吃一惊!。除了完整的参考资料,你能给我参考一些关于JSF的好书吗。虽然这是一个很好的一个,但我必须承认,它是不是精简适当。
UIComponent componentObj = FacesContext.getCurrentInstance().getViewRoot().findComponent(id)
HtmlInputText inputTextObj = (HtmlInputText) componentObj;
inputTextObj.setMaxlength(15);
inputTextObj.setStyle(....);
inputTextObj.setDisabled();
inputTextObj.setReadonly();