gpt4 book ai didi

jsf - 如何将多个inputText映射到数组属性?

转载 作者:行者123 更新时间:2023-12-02 02:25:58 24 4
gpt4 key购买 nike

我希望用户向 JSF 的 inputText 组件输入一个或多个名称。所以我正在考虑这样的托管 bean:

public class MyBean {

private String[] names;

public String[] getNames() {
return names;
}

public void setNames(String[] names) {
this.names = names;
}
}

但是,如何将 JSF 的 inputText 组件映射到此数组属性?

最佳答案

首先,您需要在 bean 的(后)构造函数中保留数组。例如

public MyBean() {
names = new String[3];
}

然后,您可以仅通过硬编码索引访问它们

<h:inputText value="#{myBean.names[0]}" />
<h:inputText value="#{myBean.names[1]}" />
<h:inputText value="#{myBean.names[2]}" />

使用<ui:repeat>varStatus通过动态索引访问它们

<ui:repeat value="#{myBean.names}" varStatus="loop">
<h:inputText value="#{myBean.names[loop.index]}" />
</ui:repeat>

请勿不要使用var属性如

<ui:repeat value="#{myBean.names}" var="name">
<h:inputText value="#{name}" />
</ui:repeat>

提交表单后它不起作用,因为 String没有值的 setter(getter 基本上是 toString() 方法)。

关于jsf - 如何将多个inputText映射到数组属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6741573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com