здрасте! Который день мучаюсь с checkbox -ом. Проблема: объект состояния(в моём случае карта selectedIds<Long, Value> в бине) не принимает значения отмеченных боксов. Уже и не знаю что делать. В метод delete() selectedIds всегда приходит пустым. в бине: | Код |
private Map<Long, Boolean> selectedIds; public Map<Long, Boolean> getSelectedIds() { return selectedIds; } public void setSelectedIds(Map<Long, Boolean> selectedIds) { this.selectedIds = selectedIds; }
|
| Код |
//метод удаления новости по выбранному чекбоксу public String delete() { HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); HttpSession session = request.getSession(); String lang = (String) session.getAttribute(ATTRIBUTE_LANG); String pattern = getConfigurationManager().getProperty(PATTERN + lang); ArrayList<String> checkedList = new ArrayList<String>(); for (Entry<Long, Boolean> entry : selectedIds.entrySet()) { if (entry.getValue()) { checkedList.add(String.valueOf(entry.getKey())); } } if (checkedList.isEmpty()) {//delete one news long deleteId = news.getId(); String[] checkedIdList = {String.valueOf(deleteId)}; newsDAO.delete(checkedIdList); } else {//delete newslist String[] s = new String[checkedList.size()]; newsDAO.delete(checkedList.toArray(s)); } }
|
модель новость: | Код |
public class NewsModel implements Serializable { @SequenceGenerator(name = "news_seq_generator", sequenceName = "news_seq") @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "news_seq_generator") @Column(name = "id") private Long id; public Long getId() { return id; } public void setId(Long id) { this.id = id; } }
|
на странице *.xhtml: | Код |
<ui:repeat var="item" value="#{NewsAction.newsList}" > <h:panelGrid columns="2" columnClasses="newsListTableFirst,newsListTableSecond" width="100%"> <h:outputText value="${item.title}" style="font: bold"/> <h:outputText value="${item.date}" style="text-decoration: underline; font-size: 13px;"/> <h:outputText value="${item.brief}"/> <h:form> <h:commandLink action="#{NewsAction.view}" value="#{msg['link.view']}"> <f:param name="viewId" value="${item.id}"/> </h:commandLink> <h:commandLink action="#{NewsAction.edit}" value="#{msg['link.edit']}" style="padding-left: 10px;"> <f:param name="editId" value="${item.id}"/> </h:commandLink> <h:selectBooleanCheckbox value="#{NewsAction.selectedIds[item.id]}" style="padding-left: 10px;"/> </h:form> </h:panelGrid> <br/> </ui:repeat>
|
help... Добавлено Сегодня, 17:53 в debugger console: Attaching to tomcat_shared_memory_id Not able to submit breakpoint MethodBreakpoint [java.util.Map].put '(LK;LV;)LV;', reason: Method 'put' with signature '(LK;LV;)LV;' does not exist in class java.util.Map. не понимаю каким образом оно возникает и что этому способствует.
|