在页面中的一个实体中插入多个数据



我有一个CRUD生成创建表单:

<div class="create-form">
    <h:form>
        <h:inputText id="name" value="#{pointController.selected.name}" title="#{bundle.CreatePointTitle_name}" required="true" />
        <h:inputText id="term" value="#{pointController.selected.term}" title="#{bundle.CreatePointTitle_term}" required="true" />
        <p:commandButton styleClass="btn" action="#{pointController.create}" value="#{bundle.CreatePointSaveLink}" />
    </h:form>
</div>
<button>add new form</button>

我有一个按钮,如果点击它将创建另一种形式相同,上面使用javascript。(2)输入文本,名称和术语

我的目标是,有2个或更多的形式,这取决于有多少形式的用户想要的,与1 commandButton,点击它将插入数据库中的一切。

的例子:

first form: name = first form test, term = first form testterm
2nd form: name = 2nd form test, term= 2nd form testterm

点击命令按钮后

2行将被插入到数据库的同一个表中。

但是我不确定这个页面的结构是什么

您不能使用JSF组件在单个请求中从多个表单发送数据,您应该序列化所有数据并手动发送。最好有一个List<Item>,每次你点击按钮,它将在列表中创建一个新项目,并更新一个UIContainer,将显示列表中的项目。

这将是上面的一个开始的例子:

@ManagedBean
@ViewScoped
public class ItemBean {
    private List<Item> lstItem;
    public ItemBean() {
        lstItem = new ArrayList<Item>();
        addItem();
    }
    //getters and setter...
    public void addItem() {
        lstItem.add(new Item());
    }
    public void saveData() {
        //you can inject the service as an EJB or however you think would be better...
        ItemService itemService = new ItemService();
        itemService.save(lstItem);
    }
}

JSF代码(仅<h:body>内容):

<h:form id="frmItems">
    <h:panelGrid id="pnlItems">
        <ui:repeat value="#{itemBean.lstItem}" var="item">
            Enter item name
            <h:inputText value="#{item.name}" />
            <br />
            Enter item description
            <h:inputText value="#{item.description}" />
            <br />
            <br />
        </ui:repeat>
    </h:panelGrid>
    <p:commandButton value="Add new item" action="#{itemBean.addItem}"
        update="pnlItems" />
    <p:commandButton value="Save data" action="#{itemBean.saveData}" />
</h:form>

相关内容

  • 没有找到相关文章

最新更新