Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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 在p:dataTable中放置包含Textfield的固定行_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf 在p:dataTable中放置包含Textfield的固定行

Jsf 在p:dataTable中放置包含Textfield的固定行,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我想使用DataTable执行以下场景: 默认情况下,datatable中只有一行具有 一个InputExtField和一个按钮 一旦用户键入名称并单击 该按钮的名称应添加到数据表中 这一过程将重复多次 1 2 3 有什么办法吗? 以前有人这样做过吗? 请给出你的建议 编辑:上面的图像是在Photoshop中更改的,而不是我代码的精确输出。正如persissf所说,您可以使用标题进行输入 我有你问题的示例代码 @SessionScoped @ManagedBean public cl

我想使用DataTable执行以下场景:

  • 默认情况下,datatable中只有一行具有 一个InputExtField和一个按钮
  • 一旦用户键入名称并单击 该按钮的名称应添加到数据表中
  • 这一过程将重复多次
1

2

3

有什么办法吗?
以前有人这样做过吗?
请给出你的建议


编辑:上面的图像是在Photoshop中更改的,而不是我代码的精确输出。

正如persissf所说,您可以使用标题进行输入

我有你问题的示例代码

@SessionScoped
@ManagedBean

public class DataBean implements Serializable{

    private static final long serialVersionUID = 1L;
    List<String> data;
    String name;

    public DataBean(){
        data=new ArrayList<String>();
    }
    /**
     * @return the data
     */
    public List<String> getData() {
        return data;
    }

    /**
     * @param data the data to set
     */
    public void setData(List<String> data) {
        this.data = data;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    public void update(){
        data.add(name);
    }


}
@SessionScoped
@ManagedBean
公共类数据库实现了可序列化{
私有静态最终长serialVersionUID=1L;
列出数据;
字符串名;
公共数据库(){
数据=新的ArrayList();
}
/**
*@返回数据
*/
公共列表getData(){
返回数据;
}
/**
*@param data要设置的数据
*/
公共无效设置数据(列表数据){
这个数据=数据;
}
/**
*@返回名称
*/
公共字符串getName(){
返回名称;
}
/**
*@param name要设置的名称
*/
公共void集合名(字符串名){
this.name=名称;
}
公共无效更新(){
数据。添加(名称);
}
}
视图:



希望这能回答你的问题。

看起来很直截了当。。“你试过什么代码?”法里德:这是我希望的。我的意思是逻辑是直截了当的。你有没有尝试过任何不适合你的代码?如果你只想要一行、一个inputtext和一个按钮,为什么你想要一个Datatable?将其置于datatable之外不是更容易吗?您可以将表标题和输入组件放入两行PanelGrid中,并使用
<h:body>
    <h:form prependId="false">

    <p:dataTable value="#{dataBean.data}" var="data" id="datatable">

        <p:column>
            <f:facet name="header">
                <h:outputText value="UserNames:" />
                <h:inputText value="#{dataBean.name}" />
                <p:commandButton value="Submit" action="#{dataBean.update}"
                    update="@form,datatable">
                </p:commandButton>
            </f:facet>

            <h:outputText value="#{data}" />
        </p:column>
    </p:dataTable>

</h:form>