从 ui:repeat JSF 生成的动态输入文本访问值
Access values from dynamic input text generated from ui:repeat JSF
<p:outputPanel id="panel">
<ui:repeat value="#{dataController.display()}"
var="item" rendered="#{Bean.showtable}">
<b:row>
<b:column col-md="5">
<h:outputText value="#{item.name}" style="font-family: verdana;font-size:16px;margin-bottom:15px;"></h:outputText>
</b:column>
<b:column col-md="7">
<h:inputText style="width:200px;height:30px;margin-bottom:15px;"
autocomplete="off"></h:inputText>
</b:column>
</b:row>
</ui:repeat>
在上面的代码中,我使用 ui:repeat 来显示列表中的 项目名称 输出文本连同输入文本用于输入项目的值。
输入文本取决于列表中的值,即动态生成的值。
我需要访问输入文本中的值并将它们添加到列表中。
尽管使用了 ui:repeat 一次来显示输入文本,但谁能建议我从输入文本访问值到 bean/list 的方法?
我曾尝试创建一个空列表并再次使用 ui:repeat 仅用于输入文本。尝试从输入 text.But 访问值 ui:repeat 再次不起作用..因为它已经用过一次展示了
我是 JSF.Any 的新手,帮助是 appreciated.Thankyou。
不要使用空列表。用 null 或空值初始化它。
假设我们有 inputs
作为您的列表,您的 bean 应该如下所示。
@Named
@ViewScoped
public class DataController implements Serializable {
private List<String> inputs;
// getters and setters
@PostConstruct
public void init() {
inputs = new ArrayList<String>();
}
public List<Bean> getDisplay() {
List<Bean> display = new ArrayList<Bean>();
// add values to display
for (int i = inputs.size(); i < display.size(); i++) {
inputs.add("");
}
return display;
}
// for testing inputs
public void testInputs() {
for (String input : inputs) {
System.out.println(">>>>>" + input);
}
}
}
xhtml
<ui:repeat value="#{dataController.display()}" varStatus="idx" ...>
...
<h:inputText value="#{dataController.inputs[idx.index]}" style="width:200px;height:30px;margin-bottom:15px;" autocomplete="off"></h:inputText>
...
</ui:repeat>
<p:commandButton value="Test Inputs" action="#{dataController.testInputs}" update="@form" />
希望对您有所帮助。
<p:outputPanel id="panel">
<ui:repeat value="#{dataController.display()}"
var="item" rendered="#{Bean.showtable}">
<b:row>
<b:column col-md="5">
<h:outputText value="#{item.name}" style="font-family: verdana;font-size:16px;margin-bottom:15px;"></h:outputText>
</b:column>
<b:column col-md="7">
<h:inputText style="width:200px;height:30px;margin-bottom:15px;"
autocomplete="off"></h:inputText>
</b:column>
</b:row>
</ui:repeat>
在上面的代码中,我使用 ui:repeat 来显示列表中的 项目名称 输出文本连同输入文本用于输入项目的值。
输入文本取决于列表中的值,即动态生成的值。
我需要访问输入文本中的值并将它们添加到列表中。
尽管使用了 ui:repeat 一次来显示输入文本,但谁能建议我从输入文本访问值到 bean/list 的方法?
我曾尝试创建一个空列表并再次使用 ui:repeat 仅用于输入文本。尝试从输入 text.But 访问值 ui:repeat 再次不起作用..因为它已经用过一次展示了
我是 JSF.Any 的新手,帮助是 appreciated.Thankyou。
不要使用空列表。用 null 或空值初始化它。
假设我们有 inputs
作为您的列表,您的 bean 应该如下所示。
@Named
@ViewScoped
public class DataController implements Serializable {
private List<String> inputs;
// getters and setters
@PostConstruct
public void init() {
inputs = new ArrayList<String>();
}
public List<Bean> getDisplay() {
List<Bean> display = new ArrayList<Bean>();
// add values to display
for (int i = inputs.size(); i < display.size(); i++) {
inputs.add("");
}
return display;
}
// for testing inputs
public void testInputs() {
for (String input : inputs) {
System.out.println(">>>>>" + input);
}
}
}
xhtml
<ui:repeat value="#{dataController.display()}" varStatus="idx" ...>
...
<h:inputText value="#{dataController.inputs[idx.index]}" style="width:200px;height:30px;margin-bottom:15px;" autocomplete="off"></h:inputText>
...
</ui:repeat>
<p:commandButton value="Test Inputs" action="#{dataController.testInputs}" update="@form" />
希望对您有所帮助。