从forEach部分的动态创建的inputText框中获取值

时间:2014-04-26 09:38:19

标签: java jsf primefaces

我正在尝试做一些与此Getting value from dynamically created inputText非常相似的事情,我有一些困难,这就是为什么我会在这里提出我的问题,希望你能帮助我。我想用Object绑定动态生成的输入框。我有:

<c:forEach items="${filterTypeBean.listTextFilterTypes()}"
                        var="inputBoxes">
                        <h:outputText value="${inputBoxes.filterTypeName}"
                            style="width: 100px; white-space: normal; border: 3px" />
                        <h:inputText value="${requestBean.filterTypeValue}" />
                    </c:forEach>

在filterTypeValue的请求bean中,我有:

private String filterTypeValue;

public String getFilterTypeValue() {
    return filterTypeValue;
}

public void setFilterTypeValue(String filterTypeValue) {
    this.filterTypeValue = filterTypeValue;
}

我的问题来自于我有三个实体--TRequest,TRequestFilter,TFilter。 TRequestFilter是一个映射表,我有TREQUEST,TFILTER和我想要的值,并从输入框后面的DB中插入。

filterTypeBean.listTextFilterTypes()我从FilterTypeBean获取:

public List<TFilterType> listTextFilterTypes() {
        EntityManager em = HibernateUtil.getEntityManager();
        Query q = em.createQuery("select u from TFilterType u where u.filterType like 'T'");
        List<TFilterType> resultList = q.getResultList();
        return resultList;
    }

我想在RequestBean中设置inputbox的值,因为首先我在DB中插入一个新的Request,之后我想在TRequestFilter表中插入这个新Request的过滤器(我需要TFilter和插入值的原因)为了它)。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我设法让它在我的bean类中使用映射:

private Map<TFilterType, Object> values = new HashMap<TFilterType, Object>();

public Map<TFilterType, Object> getValues() {
        return values;
    }

和迭代器:

while (it.hasNext()) {
            Map.Entry pairs = (Map.Entry) it.next();
            if (pairs.getValue() != null) {
                          System.out.println(pairs.getKey() + '='+ pairs.getValue());
            }
            it.remove(); // avoids a ConcurrentModificationException
        }

以这种方式我拥有和Object及其值,我能够在数据库中的新实体中插入记录。