You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Matthew Broadhead <ma...@nbmlaw.co.uk> on 2018/01/25 15:14:45 UTC

ui repeat fails to reflect collection after render

hi,
i just posted this question on stack overflow.  but then i tested 
switching to mojarra and that solved my problem so i guessed i would 
report it to this list

Consider the following xhtml fragment:

<h:form>
<h:outputText value="#{myBean.items.size()}" />
<ui:repeat var="item" value="#{myBean.items}">
     <div>
         <h:outputText value="#{item.id} #{item.name}" />
         <h:commandButton value="delete" action="#{myBean.delete}">
             <f:setPropertyActionListener target="#{myBean.item}" 
value="#{item}" />
             <f:ajax render="@form" />
         </h:commandButton>
     </div>
</ui:repeat>
<c:forEach var="item" items="#{myBean.items}">
     <div>
         <h:outputText value="#{item.id} #{item.name}" />
     </div>
</c:forEach>
</h:form>
With the backing bean delete method:

@Transactional
public String delete() {
     itemDao.delete(getItem());
     setItems(itemDao.select());
     return null;
}
And the itemDao methods like:

public List<Item> select() {
     CriteriaBuilder cb = em.getCriteriaBuilder();
     CriteriaQuery<Item> cq = cb.createQuery(Item.class);
     Root<Item> item = cq.from(Item.class);
     cq.distinct(true);
     TypedQuery<Item> query = em.createQuery(cq);
     List<Item> itemList = query.getResultList();
     return itemList;
}
public void delete(Project project) {
     project = find(project.getProjectId());
     em.remove(project);
}
The problem is that after the delete button is clicked the count is 
correct, the c:forEach is correct, but the ui:repeat is not updated and 
still shows the deleted element. Can someone suggest how to force the 
ui:repeat to also refresh?

Re: ui repeat fails to reflect collection after render

Posted by Matthew Broadhead <ma...@nbmlaw.co.uk>.
ok i have reverted the repo back to jpa version.  also switched to plume 
and can confirm it works with plume but not with plus.
also sysout before and after shows that the list size is correct. it is 
just the view that is not updating

On 29/01/2018 14:37, Thomas Andraschko wrote:
> Not sure.
>
> You did this withing your JPA example:
>
> @Transactional
> public String delete() {
>    itemDao.delete(getItem());
>     update();
>
>
> Could you check the the list size after and before the update method was
> called?
> Maybe there is something wrong with transaction handling.
>
> I assume that you also switched to EclipseLink when you switched to Mojarra
> (TomEE Plume)?
>
>
> 2018-01-29 14:28 GMT+01:00 Matthew Broadhead <matthew.broadhead@nbmlaw.co.uk
>> :
>> i have updated the project https://github.com/chongma/myFacesJpa and
>> removed the JPA stuff.  it seems to work correctly without the JPA stuff.
>> does this mean i should report this over there?
>>
>>
>> On 26/01/2018 10:38, Thomas Andraschko wrote:
>>
>>> Yep, a small as possible example (without JPA and other not-related stuff)
>>> would be great!
>>>
>>> 2018-01-26 9:45 GMT+01:00 Matthew Broadhead <
>>> matthew.broadhead@nbmlaw.co.uk>
>>> :
>>>
>>> by the way you can run the project like:
>>>> mvn package
>>>> mvn tomee:start
>>>> you need a schema called myfaces accessible by a user myfaces with
>>>> password mypassword.
>>>>
>>>> as you say it may have nothing to do with jpa but only to do with setting
>>>> the facesmessage to error.  i can try to make a test later
>>>>
>>>>
>>>> On 25/01/2018 21:23, Matthew Broadhead wrote:
>>>>
>>>> i have created a test project here
>>>>> https://github.com/chongma/myFacesJpa
>>>>>
>>>>> but in the process of creating the project i figured out the problem.
>>>>> if
>>>>> i have
>>>>> FacesContext.getCurrentInstance().addMessage(null,
>>>>>                   new FacesMessage(FacesMessage.SEVERITY_ERROR, "Deleted
>>>>> item", null));
>>>>> in my method then MyFaces doesn't update any of the "ui:repeat" type
>>>>> components
>>>>>
>>>>> This works fine:
>>>>> FacesContext.getCurrentInstance().addMessage(null,
>>>>>                   new FacesMessage(FacesMessage.SEVERITY_INFO, "Deleted
>>>>> item", null));
>>>>>
>>>>> i don't know if this is supposed to be like that but it lost me some
>>>>> time
>>>>> trying to figure it out
>>>>>
>>>>> On 25/01/2018 17:07, Thomas Andraschko wrote:
>>>>>
>>>>> Yep you are right. Not sure if there is one available.
>>>>>> But it would be great if you could try it without jpa first.
>>>>>>
>>>>>> Am Donnerstag, 25. Januar 2018 schrieb Matthew Broadhead :
>>>>>>
>>>>>> when i create these mvce projects i always wonder why there isn't a
>>>>>> maven
>>>>>>
>>>>>>> archetype.  in the case of MyFaces maybe a bare bones project with
>>>>>>> jetty-maven-plugin, jpa and jsf all preconfigured ready to create a
>>>>>>> sample...
>>>>>>>
>>>>>>> On 25/01/2018 16:28, Thomas Andraschko wrote:
>>>>>>>
>>>>>>> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>>>>>>>
>>>>>>>> A small maven application with jetty-maven-plugin would be a great
>>>>>>>> example!
>>>>>>>>
>>>>>>>> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <
>>>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>>>
>>>>>>>> :
>>>>>>>>
>>>>>>>>> ok i will do that.  where do i create an issue?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>>>>>>>>
>>>>>>>>> Could you please provide a mvce and create a issue?
>>>>>>>>>
>>>>>>>>> Otherwise it's almost impossible to help you.
>>>>>>>>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>>>>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>>>>>
>>>>>>>>>> :
>>>>>>>>>>
>>>>>>>>>> hi,
>>>>>>>>>>> i just posted this question on stack overflow.  but then i tested
>>>>>>>>>>> switching to mojarra and that solved my problem so i guessed i
>>>>>>>>>>> would
>>>>>>>>>>> report
>>>>>>>>>>> it to this list
>>>>>>>>>>>
>>>>>>>>>>> Consider the following xhtml fragment:
>>>>>>>>>>>
>>>>>>>>>>> <h:form>
>>>>>>>>>>> <h:outputText value="#{myBean.items.size()}" />
>>>>>>>>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>>>>>>>>          <div>
>>>>>>>>>>>              <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>>>>              <h:commandButton value="delete"
>>>>>>>>>>> action="#{myBean.delete}">
>>>>>>>>>>>                  <f:setPropertyActionListener
>>>>>>>>>>> target="#{myBean.item}"
>>>>>>>>>>> value="#{item}" />
>>>>>>>>>>>                  <f:ajax render="@form" />
>>>>>>>>>>>              </h:commandButton>
>>>>>>>>>>>          </div>
>>>>>>>>>>> </ui:repeat>
>>>>>>>>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>>>>>>>>          <div>
>>>>>>>>>>>              <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>>>>          </div>
>>>>>>>>>>> </c:forEach>
>>>>>>>>>>> </h:form>
>>>>>>>>>>> With the backing bean delete method:
>>>>>>>>>>>
>>>>>>>>>>> @Transactional
>>>>>>>>>>> public String delete() {
>>>>>>>>>>>          itemDao.delete(getItem());
>>>>>>>>>>>          setItems(itemDao.select());
>>>>>>>>>>>          return null;
>>>>>>>>>>> }
>>>>>>>>>>> And the itemDao methods like:
>>>>>>>>>>>
>>>>>>>>>>> public List<Item> select() {
>>>>>>>>>>>          CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>>>>>>>>          CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>>>>>>>>          Root<Item> item = cq.from(Item.class);
>>>>>>>>>>>          cq.distinct(true);
>>>>>>>>>>>          TypedQuery<Item> query = em.createQuery(cq);
>>>>>>>>>>>          List<Item> itemList = query.getResultList();
>>>>>>>>>>>          return itemList;
>>>>>>>>>>> }
>>>>>>>>>>> public void delete(Project project) {
>>>>>>>>>>>          project = find(project.getProjectId());
>>>>>>>>>>>          em.remove(project);
>>>>>>>>>>> }
>>>>>>>>>>> The problem is that after the delete button is clicked the count
>>>>>>>>>>> is
>>>>>>>>>>> correct, the c:forEach is correct, but the ui:repeat is not
>>>>>>>>>>> updated
>>>>>>>>>>> and
>>>>>>>>>>> still shows the deleted element. Can someone suggest how to force
>>>>>>>>>>> the
>>>>>>>>>>> ui:repeat to also refresh?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>


Re: ui repeat fails to reflect collection after render

Posted by Matthew Broadhead <ma...@nbmlaw.co.uk>.
i did step through and the list was updated correctly, i.e. if list was 
3 items and i deleted 1 then it was 2
when i switched to mojarra i just included the mojarra libraries in the pom.
but yes it might be easier to switch to tomee plume for testing, i will 
try it

On 29/01/2018 14:37, Thomas Andraschko wrote:
> Not sure.
>
> You did this withing your JPA example:
>
> @Transactional
> public String delete() {
>    itemDao.delete(getItem());
>     update();
>
>
> Could you check the the list size after and before the update method was
> called?
> Maybe there is something wrong with transaction handling.
>
> I assume that you also switched to EclipseLink when you switched to Mojarra
> (TomEE Plume)?
>
>
> 2018-01-29 14:28 GMT+01:00 Matthew Broadhead <matthew.broadhead@nbmlaw.co.uk
>> :
>> i have updated the project https://github.com/chongma/myFacesJpa and
>> removed the JPA stuff.  it seems to work correctly without the JPA stuff.
>> does this mean i should report this over there?
>>
>>
>> On 26/01/2018 10:38, Thomas Andraschko wrote:
>>
>>> Yep, a small as possible example (without JPA and other not-related stuff)
>>> would be great!
>>>
>>> 2018-01-26 9:45 GMT+01:00 Matthew Broadhead <
>>> matthew.broadhead@nbmlaw.co.uk>
>>> :
>>>
>>> by the way you can run the project like:
>>>> mvn package
>>>> mvn tomee:start
>>>> you need a schema called myfaces accessible by a user myfaces with
>>>> password mypassword.
>>>>
>>>> as you say it may have nothing to do with jpa but only to do with setting
>>>> the facesmessage to error.  i can try to make a test later
>>>>
>>>>
>>>> On 25/01/2018 21:23, Matthew Broadhead wrote:
>>>>
>>>> i have created a test project here
>>>>> https://github.com/chongma/myFacesJpa
>>>>>
>>>>> but in the process of creating the project i figured out the problem.
>>>>> if
>>>>> i have
>>>>> FacesContext.getCurrentInstance().addMessage(null,
>>>>>                   new FacesMessage(FacesMessage.SEVERITY_ERROR, "Deleted
>>>>> item", null));
>>>>> in my method then MyFaces doesn't update any of the "ui:repeat" type
>>>>> components
>>>>>
>>>>> This works fine:
>>>>> FacesContext.getCurrentInstance().addMessage(null,
>>>>>                   new FacesMessage(FacesMessage.SEVERITY_INFO, "Deleted
>>>>> item", null));
>>>>>
>>>>> i don't know if this is supposed to be like that but it lost me some
>>>>> time
>>>>> trying to figure it out
>>>>>
>>>>> On 25/01/2018 17:07, Thomas Andraschko wrote:
>>>>>
>>>>> Yep you are right. Not sure if there is one available.
>>>>>> But it would be great if you could try it without jpa first.
>>>>>>
>>>>>> Am Donnerstag, 25. Januar 2018 schrieb Matthew Broadhead :
>>>>>>
>>>>>> when i create these mvce projects i always wonder why there isn't a
>>>>>> maven
>>>>>>
>>>>>>> archetype.  in the case of MyFaces maybe a bare bones project with
>>>>>>> jetty-maven-plugin, jpa and jsf all preconfigured ready to create a
>>>>>>> sample...
>>>>>>>
>>>>>>> On 25/01/2018 16:28, Thomas Andraschko wrote:
>>>>>>>
>>>>>>> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>>>>>>>
>>>>>>>> A small maven application with jetty-maven-plugin would be a great
>>>>>>>> example!
>>>>>>>>
>>>>>>>> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <
>>>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>>>
>>>>>>>> :
>>>>>>>>
>>>>>>>>> ok i will do that.  where do i create an issue?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>>>>>>>>
>>>>>>>>> Could you please provide a mvce and create a issue?
>>>>>>>>>
>>>>>>>>> Otherwise it's almost impossible to help you.
>>>>>>>>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>>>>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>>>>>
>>>>>>>>>> :
>>>>>>>>>>
>>>>>>>>>> hi,
>>>>>>>>>>> i just posted this question on stack overflow.  but then i tested
>>>>>>>>>>> switching to mojarra and that solved my problem so i guessed i
>>>>>>>>>>> would
>>>>>>>>>>> report
>>>>>>>>>>> it to this list
>>>>>>>>>>>
>>>>>>>>>>> Consider the following xhtml fragment:
>>>>>>>>>>>
>>>>>>>>>>> <h:form>
>>>>>>>>>>> <h:outputText value="#{myBean.items.size()}" />
>>>>>>>>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>>>>>>>>          <div>
>>>>>>>>>>>              <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>>>>              <h:commandButton value="delete"
>>>>>>>>>>> action="#{myBean.delete}">
>>>>>>>>>>>                  <f:setPropertyActionListener
>>>>>>>>>>> target="#{myBean.item}"
>>>>>>>>>>> value="#{item}" />
>>>>>>>>>>>                  <f:ajax render="@form" />
>>>>>>>>>>>              </h:commandButton>
>>>>>>>>>>>          </div>
>>>>>>>>>>> </ui:repeat>
>>>>>>>>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>>>>>>>>          <div>
>>>>>>>>>>>              <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>>>>          </div>
>>>>>>>>>>> </c:forEach>
>>>>>>>>>>> </h:form>
>>>>>>>>>>> With the backing bean delete method:
>>>>>>>>>>>
>>>>>>>>>>> @Transactional
>>>>>>>>>>> public String delete() {
>>>>>>>>>>>          itemDao.delete(getItem());
>>>>>>>>>>>          setItems(itemDao.select());
>>>>>>>>>>>          return null;
>>>>>>>>>>> }
>>>>>>>>>>> And the itemDao methods like:
>>>>>>>>>>>
>>>>>>>>>>> public List<Item> select() {
>>>>>>>>>>>          CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>>>>>>>>          CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>>>>>>>>          Root<Item> item = cq.from(Item.class);
>>>>>>>>>>>          cq.distinct(true);
>>>>>>>>>>>          TypedQuery<Item> query = em.createQuery(cq);
>>>>>>>>>>>          List<Item> itemList = query.getResultList();
>>>>>>>>>>>          return itemList;
>>>>>>>>>>> }
>>>>>>>>>>> public void delete(Project project) {
>>>>>>>>>>>          project = find(project.getProjectId());
>>>>>>>>>>>          em.remove(project);
>>>>>>>>>>> }
>>>>>>>>>>> The problem is that after the delete button is clicked the count
>>>>>>>>>>> is
>>>>>>>>>>> correct, the c:forEach is correct, but the ui:repeat is not
>>>>>>>>>>> updated
>>>>>>>>>>> and
>>>>>>>>>>> still shows the deleted element. Can someone suggest how to force
>>>>>>>>>>> the
>>>>>>>>>>> ui:repeat to also refresh?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>


Re: ui repeat fails to reflect collection after render

Posted by Thomas Andraschko <an...@gmail.com>.
Not sure.

You did this withing your JPA example:

@Transactional
public String delete() {
  itemDao.delete(getItem());
   update();


Could you check the the list size after and before the update method was
called?
Maybe there is something wrong with transaction handling.

I assume that you also switched to EclipseLink when you switched to Mojarra
(TomEE Plume)?


2018-01-29 14:28 GMT+01:00 Matthew Broadhead <matthew.broadhead@nbmlaw.co.uk
>:

> i have updated the project https://github.com/chongma/myFacesJpa and
> removed the JPA stuff.  it seems to work correctly without the JPA stuff.
> does this mean i should report this over there?
>
>
> On 26/01/2018 10:38, Thomas Andraschko wrote:
>
>> Yep, a small as possible example (without JPA and other not-related stuff)
>> would be great!
>>
>> 2018-01-26 9:45 GMT+01:00 Matthew Broadhead <
>> matthew.broadhead@nbmlaw.co.uk>
>> :
>>
>> by the way you can run the project like:
>>> mvn package
>>> mvn tomee:start
>>> you need a schema called myfaces accessible by a user myfaces with
>>> password mypassword.
>>>
>>> as you say it may have nothing to do with jpa but only to do with setting
>>> the facesmessage to error.  i can try to make a test later
>>>
>>>
>>> On 25/01/2018 21:23, Matthew Broadhead wrote:
>>>
>>> i have created a test project here
>>>> https://github.com/chongma/myFacesJpa
>>>>
>>>> but in the process of creating the project i figured out the problem.
>>>> if
>>>> i have
>>>> FacesContext.getCurrentInstance().addMessage(null,
>>>>                  new FacesMessage(FacesMessage.SEVERITY_ERROR, "Deleted
>>>> item", null));
>>>> in my method then MyFaces doesn't update any of the "ui:repeat" type
>>>> components
>>>>
>>>> This works fine:
>>>> FacesContext.getCurrentInstance().addMessage(null,
>>>>                  new FacesMessage(FacesMessage.SEVERITY_INFO, "Deleted
>>>> item", null));
>>>>
>>>> i don't know if this is supposed to be like that but it lost me some
>>>> time
>>>> trying to figure it out
>>>>
>>>> On 25/01/2018 17:07, Thomas Andraschko wrote:
>>>>
>>>> Yep you are right. Not sure if there is one available.
>>>>> But it would be great if you could try it without jpa first.
>>>>>
>>>>> Am Donnerstag, 25. Januar 2018 schrieb Matthew Broadhead :
>>>>>
>>>>> when i create these mvce projects i always wonder why there isn't a
>>>>> maven
>>>>>
>>>>>> archetype.  in the case of MyFaces maybe a bare bones project with
>>>>>> jetty-maven-plugin, jpa and jsf all preconfigured ready to create a
>>>>>> sample...
>>>>>>
>>>>>> On 25/01/2018 16:28, Thomas Andraschko wrote:
>>>>>>
>>>>>> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>>>>>>
>>>>>>> A small maven application with jetty-maven-plugin would be a great
>>>>>>> example!
>>>>>>>
>>>>>>> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <
>>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>>
>>>>>>> :
>>>>>>>
>>>>>>>> ok i will do that.  where do i create an issue?
>>>>>>>>
>>>>>>>>
>>>>>>>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>>>>>>>
>>>>>>>> Could you please provide a mvce and create a issue?
>>>>>>>>
>>>>>>>> Otherwise it's almost impossible to help you.
>>>>>>>>>
>>>>>>>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>>>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>>>>
>>>>>>>>> :
>>>>>>>>>
>>>>>>>>> hi,
>>>>>>>>>> i just posted this question on stack overflow.  but then i tested
>>>>>>>>>> switching to mojarra and that solved my problem so i guessed i
>>>>>>>>>> would
>>>>>>>>>> report
>>>>>>>>>> it to this list
>>>>>>>>>>
>>>>>>>>>> Consider the following xhtml fragment:
>>>>>>>>>>
>>>>>>>>>> <h:form>
>>>>>>>>>> <h:outputText value="#{myBean.items.size()}" />
>>>>>>>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>>>>>>>         <div>
>>>>>>>>>>             <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>>>             <h:commandButton value="delete"
>>>>>>>>>> action="#{myBean.delete}">
>>>>>>>>>>                 <f:setPropertyActionListener
>>>>>>>>>> target="#{myBean.item}"
>>>>>>>>>> value="#{item}" />
>>>>>>>>>>                 <f:ajax render="@form" />
>>>>>>>>>>             </h:commandButton>
>>>>>>>>>>         </div>
>>>>>>>>>> </ui:repeat>
>>>>>>>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>>>>>>>         <div>
>>>>>>>>>>             <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>>>         </div>
>>>>>>>>>> </c:forEach>
>>>>>>>>>> </h:form>
>>>>>>>>>> With the backing bean delete method:
>>>>>>>>>>
>>>>>>>>>> @Transactional
>>>>>>>>>> public String delete() {
>>>>>>>>>>         itemDao.delete(getItem());
>>>>>>>>>>         setItems(itemDao.select());
>>>>>>>>>>         return null;
>>>>>>>>>> }
>>>>>>>>>> And the itemDao methods like:
>>>>>>>>>>
>>>>>>>>>> public List<Item> select() {
>>>>>>>>>>         CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>>>>>>>         CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>>>>>>>         Root<Item> item = cq.from(Item.class);
>>>>>>>>>>         cq.distinct(true);
>>>>>>>>>>         TypedQuery<Item> query = em.createQuery(cq);
>>>>>>>>>>         List<Item> itemList = query.getResultList();
>>>>>>>>>>         return itemList;
>>>>>>>>>> }
>>>>>>>>>> public void delete(Project project) {
>>>>>>>>>>         project = find(project.getProjectId());
>>>>>>>>>>         em.remove(project);
>>>>>>>>>> }
>>>>>>>>>> The problem is that after the delete button is clicked the count
>>>>>>>>>> is
>>>>>>>>>> correct, the c:forEach is correct, but the ui:repeat is not
>>>>>>>>>> updated
>>>>>>>>>> and
>>>>>>>>>> still shows the deleted element. Can someone suggest how to force
>>>>>>>>>> the
>>>>>>>>>> ui:repeat to also refresh?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>

Re: ui repeat fails to reflect collection after render

Posted by Matthew Broadhead <ma...@nbmlaw.co.uk>.
i have updated the project https://github.com/chongma/myFacesJpa and 
removed the JPA stuff.  it seems to work correctly without the JPA 
stuff.  does this mean i should report this over there?

On 26/01/2018 10:38, Thomas Andraschko wrote:
> Yep, a small as possible example (without JPA and other not-related stuff)
> would be great!
>
> 2018-01-26 9:45 GMT+01:00 Matthew Broadhead <ma...@nbmlaw.co.uk>
> :
>
>> by the way you can run the project like:
>> mvn package
>> mvn tomee:start
>> you need a schema called myfaces accessible by a user myfaces with
>> password mypassword.
>>
>> as you say it may have nothing to do with jpa but only to do with setting
>> the facesmessage to error.  i can try to make a test later
>>
>>
>> On 25/01/2018 21:23, Matthew Broadhead wrote:
>>
>>> i have created a test project here
>>> https://github.com/chongma/myFacesJpa
>>>
>>> but in the process of creating the project i figured out the problem.  if
>>> i have
>>> FacesContext.getCurrentInstance().addMessage(null,
>>>                  new FacesMessage(FacesMessage.SEVERITY_ERROR, "Deleted
>>> item", null));
>>> in my method then MyFaces doesn't update any of the "ui:repeat" type
>>> components
>>>
>>> This works fine:
>>> FacesContext.getCurrentInstance().addMessage(null,
>>>                  new FacesMessage(FacesMessage.SEVERITY_INFO, "Deleted
>>> item", null));
>>>
>>> i don't know if this is supposed to be like that but it lost me some time
>>> trying to figure it out
>>>
>>> On 25/01/2018 17:07, Thomas Andraschko wrote:
>>>
>>>> Yep you are right. Not sure if there is one available.
>>>> But it would be great if you could try it without jpa first.
>>>>
>>>> Am Donnerstag, 25. Januar 2018 schrieb Matthew Broadhead :
>>>>
>>>> when i create these mvce projects i always wonder why there isn't a maven
>>>>> archetype.  in the case of MyFaces maybe a bare bones project with
>>>>> jetty-maven-plugin, jpa and jsf all preconfigured ready to create a
>>>>> sample...
>>>>>
>>>>> On 25/01/2018 16:28, Thomas Andraschko wrote:
>>>>>
>>>>> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>>>>>> A small maven application with jetty-maven-plugin would be a great
>>>>>> example!
>>>>>>
>>>>>> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <
>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>
>>>>>> :
>>>>>>> ok i will do that.  where do i create an issue?
>>>>>>>
>>>>>>>
>>>>>>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>>>>>>
>>>>>>> Could you please provide a mvce and create a issue?
>>>>>>>
>>>>>>>> Otherwise it's almost impossible to help you.
>>>>>>>>
>>>>>>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>>>
>>>>>>>> :
>>>>>>>>
>>>>>>>>> hi,
>>>>>>>>> i just posted this question on stack overflow.  but then i tested
>>>>>>>>> switching to mojarra and that solved my problem so i guessed i would
>>>>>>>>> report
>>>>>>>>> it to this list
>>>>>>>>>
>>>>>>>>> Consider the following xhtml fragment:
>>>>>>>>>
>>>>>>>>> <h:form>
>>>>>>>>> <h:outputText value="#{myBean.items.size()}" />
>>>>>>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>>>>>>         <div>
>>>>>>>>>             <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>>             <h:commandButton value="delete"
>>>>>>>>> action="#{myBean.delete}">
>>>>>>>>>                 <f:setPropertyActionListener target="#{myBean.item}"
>>>>>>>>> value="#{item}" />
>>>>>>>>>                 <f:ajax render="@form" />
>>>>>>>>>             </h:commandButton>
>>>>>>>>>         </div>
>>>>>>>>> </ui:repeat>
>>>>>>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>>>>>>         <div>
>>>>>>>>>             <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>>         </div>
>>>>>>>>> </c:forEach>
>>>>>>>>> </h:form>
>>>>>>>>> With the backing bean delete method:
>>>>>>>>>
>>>>>>>>> @Transactional
>>>>>>>>> public String delete() {
>>>>>>>>>         itemDao.delete(getItem());
>>>>>>>>>         setItems(itemDao.select());
>>>>>>>>>         return null;
>>>>>>>>> }
>>>>>>>>> And the itemDao methods like:
>>>>>>>>>
>>>>>>>>> public List<Item> select() {
>>>>>>>>>         CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>>>>>>         CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>>>>>>         Root<Item> item = cq.from(Item.class);
>>>>>>>>>         cq.distinct(true);
>>>>>>>>>         TypedQuery<Item> query = em.createQuery(cq);
>>>>>>>>>         List<Item> itemList = query.getResultList();
>>>>>>>>>         return itemList;
>>>>>>>>> }
>>>>>>>>> public void delete(Project project) {
>>>>>>>>>         project = find(project.getProjectId());
>>>>>>>>>         em.remove(project);
>>>>>>>>> }
>>>>>>>>> The problem is that after the delete button is clicked the count is
>>>>>>>>> correct, the c:forEach is correct, but the ui:repeat is not updated
>>>>>>>>> and
>>>>>>>>> still shows the deleted element. Can someone suggest how to force
>>>>>>>>> the
>>>>>>>>> ui:repeat to also refresh?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>


Re: ui repeat fails to reflect collection after render

Posted by Thomas Andraschko <an...@gmail.com>.
Yep, a small as possible example (without JPA and other not-related stuff)
would be great!

2018-01-26 9:45 GMT+01:00 Matthew Broadhead <ma...@nbmlaw.co.uk>
:

> by the way you can run the project like:
> mvn package
> mvn tomee:start
> you need a schema called myfaces accessible by a user myfaces with
> password mypassword.
>
> as you say it may have nothing to do with jpa but only to do with setting
> the facesmessage to error.  i can try to make a test later
>
>
> On 25/01/2018 21:23, Matthew Broadhead wrote:
>
>> i have created a test project here
>> https://github.com/chongma/myFacesJpa
>>
>> but in the process of creating the project i figured out the problem.  if
>> i have
>> FacesContext.getCurrentInstance().addMessage(null,
>>                 new FacesMessage(FacesMessage.SEVERITY_ERROR, "Deleted
>> item", null));
>> in my method then MyFaces doesn't update any of the "ui:repeat" type
>> components
>>
>> This works fine:
>> FacesContext.getCurrentInstance().addMessage(null,
>>                 new FacesMessage(FacesMessage.SEVERITY_INFO, "Deleted
>> item", null));
>>
>> i don't know if this is supposed to be like that but it lost me some time
>> trying to figure it out
>>
>> On 25/01/2018 17:07, Thomas Andraschko wrote:
>>
>>> Yep you are right. Not sure if there is one available.
>>> But it would be great if you could try it without jpa first.
>>>
>>> Am Donnerstag, 25. Januar 2018 schrieb Matthew Broadhead :
>>>
>>> when i create these mvce projects i always wonder why there isn't a maven
>>>> archetype.  in the case of MyFaces maybe a bare bones project with
>>>> jetty-maven-plugin, jpa and jsf all preconfigured ready to create a
>>>> sample...
>>>>
>>>> On 25/01/2018 16:28, Thomas Andraschko wrote:
>>>>
>>>> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>>>>>
>>>>> A small maven application with jetty-maven-plugin would be a great
>>>>> example!
>>>>>
>>>>> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <
>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>
>>>>> :
>>>>>> ok i will do that.  where do i create an issue?
>>>>>>
>>>>>>
>>>>>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>>>>>
>>>>>> Could you please provide a mvce and create a issue?
>>>>>>
>>>>>>> Otherwise it's almost impossible to help you.
>>>>>>>
>>>>>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>>
>>>>>>> :
>>>>>>>
>>>>>>>> hi,
>>>>>>>> i just posted this question on stack overflow.  but then i tested
>>>>>>>> switching to mojarra and that solved my problem so i guessed i would
>>>>>>>> report
>>>>>>>> it to this list
>>>>>>>>
>>>>>>>> Consider the following xhtml fragment:
>>>>>>>>
>>>>>>>> <h:form>
>>>>>>>> <h:outputText value="#{myBean.items.size()}" />
>>>>>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>>>>>        <div>
>>>>>>>>            <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>            <h:commandButton value="delete"
>>>>>>>> action="#{myBean.delete}">
>>>>>>>>                <f:setPropertyActionListener target="#{myBean.item}"
>>>>>>>> value="#{item}" />
>>>>>>>>                <f:ajax render="@form" />
>>>>>>>>            </h:commandButton>
>>>>>>>>        </div>
>>>>>>>> </ui:repeat>
>>>>>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>>>>>        <div>
>>>>>>>>            <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>>        </div>
>>>>>>>> </c:forEach>
>>>>>>>> </h:form>
>>>>>>>> With the backing bean delete method:
>>>>>>>>
>>>>>>>> @Transactional
>>>>>>>> public String delete() {
>>>>>>>>        itemDao.delete(getItem());
>>>>>>>>        setItems(itemDao.select());
>>>>>>>>        return null;
>>>>>>>> }
>>>>>>>> And the itemDao methods like:
>>>>>>>>
>>>>>>>> public List<Item> select() {
>>>>>>>>        CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>>>>>        CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>>>>>        Root<Item> item = cq.from(Item.class);
>>>>>>>>        cq.distinct(true);
>>>>>>>>        TypedQuery<Item> query = em.createQuery(cq);
>>>>>>>>        List<Item> itemList = query.getResultList();
>>>>>>>>        return itemList;
>>>>>>>> }
>>>>>>>> public void delete(Project project) {
>>>>>>>>        project = find(project.getProjectId());
>>>>>>>>        em.remove(project);
>>>>>>>> }
>>>>>>>> The problem is that after the delete button is clicked the count is
>>>>>>>> correct, the c:forEach is correct, but the ui:repeat is not updated
>>>>>>>> and
>>>>>>>> still shows the deleted element. Can someone suggest how to force
>>>>>>>> the
>>>>>>>> ui:repeat to also refresh?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>
>

Re: ui repeat fails to reflect collection after render

Posted by Matthew Broadhead <ma...@nbmlaw.co.uk>.
by the way you can run the project like:
mvn package
mvn tomee:start
you need a schema called myfaces accessible by a user myfaces with 
password mypassword.

as you say it may have nothing to do with jpa but only to do with 
setting the facesmessage to error.  i can try to make a test later

On 25/01/2018 21:23, Matthew Broadhead wrote:
> i have created a test project here
> https://github.com/chongma/myFacesJpa
>
> but in the process of creating the project i figured out the problem.  
> if i have
> FacesContext.getCurrentInstance().addMessage(null,
>                 new FacesMessage(FacesMessage.SEVERITY_ERROR, "Deleted 
> item", null));
> in my method then MyFaces doesn't update any of the "ui:repeat" type 
> components
>
> This works fine:
> FacesContext.getCurrentInstance().addMessage(null,
>                 new FacesMessage(FacesMessage.SEVERITY_INFO, "Deleted 
> item", null));
>
> i don't know if this is supposed to be like that but it lost me some 
> time trying to figure it out
>
> On 25/01/2018 17:07, Thomas Andraschko wrote:
>> Yep you are right. Not sure if there is one available.
>> But it would be great if you could try it without jpa first.
>>
>> Am Donnerstag, 25. Januar 2018 schrieb Matthew Broadhead :
>>
>>> when i create these mvce projects i always wonder why there isn't a 
>>> maven
>>> archetype.  in the case of MyFaces maybe a bare bones project with
>>> jetty-maven-plugin, jpa and jsf all preconfigured ready to create a
>>> sample...
>>>
>>> On 25/01/2018 16:28, Thomas Andraschko wrote:
>>>
>>>> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>>>>
>>>> A small maven application with jetty-maven-plugin would be a great
>>>> example!
>>>>
>>>> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <
>>>> matthew.broadhead@nbmlaw.co.uk
>>>>
>>>>> :
>>>>> ok i will do that.  where do i create an issue?
>>>>>
>>>>>
>>>>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>>>>
>>>>> Could you please provide a mvce and create a issue?
>>>>>> Otherwise it's almost impossible to help you.
>>>>>>
>>>>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>>
>>>>>> :
>>>>>>> hi,
>>>>>>> i just posted this question on stack overflow.  but then i tested
>>>>>>> switching to mojarra and that solved my problem so i guessed i 
>>>>>>> would
>>>>>>> report
>>>>>>> it to this list
>>>>>>>
>>>>>>> Consider the following xhtml fragment:
>>>>>>>
>>>>>>> <h:form>
>>>>>>> <h:outputText value="#{myBean.items.size()}" />
>>>>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>>>>        <div>
>>>>>>>            <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>            <h:commandButton value="delete" 
>>>>>>> action="#{myBean.delete}">
>>>>>>>                <f:setPropertyActionListener target="#{myBean.item}"
>>>>>>> value="#{item}" />
>>>>>>>                <f:ajax render="@form" />
>>>>>>>            </h:commandButton>
>>>>>>>        </div>
>>>>>>> </ui:repeat>
>>>>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>>>>        <div>
>>>>>>>            <h:outputText value="#{item.id} #{item.name}" />
>>>>>>>        </div>
>>>>>>> </c:forEach>
>>>>>>> </h:form>
>>>>>>> With the backing bean delete method:
>>>>>>>
>>>>>>> @Transactional
>>>>>>> public String delete() {
>>>>>>>        itemDao.delete(getItem());
>>>>>>>        setItems(itemDao.select());
>>>>>>>        return null;
>>>>>>> }
>>>>>>> And the itemDao methods like:
>>>>>>>
>>>>>>> public List<Item> select() {
>>>>>>>        CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>>>>        CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>>>>        Root<Item> item = cq.from(Item.class);
>>>>>>>        cq.distinct(true);
>>>>>>>        TypedQuery<Item> query = em.createQuery(cq);
>>>>>>>        List<Item> itemList = query.getResultList();
>>>>>>>        return itemList;
>>>>>>> }
>>>>>>> public void delete(Project project) {
>>>>>>>        project = find(project.getProjectId());
>>>>>>>        em.remove(project);
>>>>>>> }
>>>>>>> The problem is that after the delete button is clicked the count is
>>>>>>> correct, the c:forEach is correct, but the ui:repeat is not 
>>>>>>> updated and
>>>>>>> still shows the deleted element. Can someone suggest how to 
>>>>>>> force the
>>>>>>> ui:repeat to also refresh?
>>>>>>>
>>>>>>>
>>>>>>>
>


Re: ui repeat fails to reflect collection after render

Posted by Matthew Broadhead <ma...@nbmlaw.co.uk>.
i have created a test project here
https://github.com/chongma/myFacesJpa

but in the process of creating the project i figured out the problem.  
if i have
FacesContext.getCurrentInstance().addMessage(null,
                 new FacesMessage(FacesMessage.SEVERITY_ERROR, "Deleted 
item", null));
in my method then MyFaces doesn't update any of the "ui:repeat" type 
components

This works fine:
FacesContext.getCurrentInstance().addMessage(null,
                 new FacesMessage(FacesMessage.SEVERITY_INFO, "Deleted 
item", null));

i don't know if this is supposed to be like that but it lost me some 
time trying to figure it out

On 25/01/2018 17:07, Thomas Andraschko wrote:
> Yep you are right. Not sure if there is one available.
> But it would be great if you could try it without jpa first.
>
> Am Donnerstag, 25. Januar 2018 schrieb Matthew Broadhead :
>
>> when i create these mvce projects i always wonder why there isn't a maven
>> archetype.  in the case of MyFaces maybe a bare bones project with
>> jetty-maven-plugin, jpa and jsf all preconfigured ready to create a
>> sample...
>>
>> On 25/01/2018 16:28, Thomas Andraschko wrote:
>>
>>> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>>>
>>> A small maven application with jetty-maven-plugin would be a great
>>> example!
>>>
>>> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <
>>> matthew.broadhead@nbmlaw.co.uk
>>>
>>>> :
>>>> ok i will do that.  where do i create an issue?
>>>>
>>>>
>>>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>>>
>>>> Could you please provide a mvce and create a issue?
>>>>> Otherwise it's almost impossible to help you.
>>>>>
>>>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>>>> matthew.broadhead@nbmlaw.co.uk
>>>>>
>>>>> :
>>>>>> hi,
>>>>>> i just posted this question on stack overflow.  but then i tested
>>>>>> switching to mojarra and that solved my problem so i guessed i would
>>>>>> report
>>>>>> it to this list
>>>>>>
>>>>>> Consider the following xhtml fragment:
>>>>>>
>>>>>> <h:form>
>>>>>> <h:outputText value="#{myBean.items.size()}" />
>>>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>>>        <div>
>>>>>>            <h:outputText value="#{item.id} #{item.name}" />
>>>>>>            <h:commandButton value="delete" action="#{myBean.delete}">
>>>>>>                <f:setPropertyActionListener target="#{myBean.item}"
>>>>>> value="#{item}" />
>>>>>>                <f:ajax render="@form" />
>>>>>>            </h:commandButton>
>>>>>>        </div>
>>>>>> </ui:repeat>
>>>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>>>        <div>
>>>>>>            <h:outputText value="#{item.id} #{item.name}" />
>>>>>>        </div>
>>>>>> </c:forEach>
>>>>>> </h:form>
>>>>>> With the backing bean delete method:
>>>>>>
>>>>>> @Transactional
>>>>>> public String delete() {
>>>>>>        itemDao.delete(getItem());
>>>>>>        setItems(itemDao.select());
>>>>>>        return null;
>>>>>> }
>>>>>> And the itemDao methods like:
>>>>>>
>>>>>> public List<Item> select() {
>>>>>>        CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>>>        CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>>>        Root<Item> item = cq.from(Item.class);
>>>>>>        cq.distinct(true);
>>>>>>        TypedQuery<Item> query = em.createQuery(cq);
>>>>>>        List<Item> itemList = query.getResultList();
>>>>>>        return itemList;
>>>>>> }
>>>>>> public void delete(Project project) {
>>>>>>        project = find(project.getProjectId());
>>>>>>        em.remove(project);
>>>>>> }
>>>>>> The problem is that after the delete button is clicked the count is
>>>>>> correct, the c:forEach is correct, but the ui:repeat is not updated and
>>>>>> still shows the deleted element. Can someone suggest how to force the
>>>>>> ui:repeat to also refresh?
>>>>>>
>>>>>>
>>>>>>


Re: ui repeat fails to reflect collection after render

Posted by Thomas Andraschko <an...@gmail.com>.
Yep you are right. Not sure if there is one available.
But it would be great if you could try it without jpa first.

Am Donnerstag, 25. Januar 2018 schrieb Matthew Broadhead :

> when i create these mvce projects i always wonder why there isn't a maven
> archetype.  in the case of MyFaces maybe a bare bones project with
> jetty-maven-plugin, jpa and jsf all preconfigured ready to create a
> sample...
>
> On 25/01/2018 16:28, Thomas Andraschko wrote:
>
>> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>>
>> A small maven application with jetty-maven-plugin would be a great
>> example!
>>
>> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <
>> matthew.broadhead@nbmlaw.co.uk
>>
>>> :
>>> ok i will do that.  where do i create an issue?
>>>
>>>
>>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>>
>>> Could you please provide a mvce and create a issue?
>>>> Otherwise it's almost impossible to help you.
>>>>
>>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>>> matthew.broadhead@nbmlaw.co.uk
>>>>
>>>> :
>>>>> hi,
>>>>> i just posted this question on stack overflow.  but then i tested
>>>>> switching to mojarra and that solved my problem so i guessed i would
>>>>> report
>>>>> it to this list
>>>>>
>>>>> Consider the following xhtml fragment:
>>>>>
>>>>> <h:form>
>>>>> <h:outputText value="#{myBean.items.size()}" />
>>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>>       <div>
>>>>>           <h:outputText value="#{item.id} #{item.name}" />
>>>>>           <h:commandButton value="delete" action="#{myBean.delete}">
>>>>>               <f:setPropertyActionListener target="#{myBean.item}"
>>>>> value="#{item}" />
>>>>>               <f:ajax render="@form" />
>>>>>           </h:commandButton>
>>>>>       </div>
>>>>> </ui:repeat>
>>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>>       <div>
>>>>>           <h:outputText value="#{item.id} #{item.name}" />
>>>>>       </div>
>>>>> </c:forEach>
>>>>> </h:form>
>>>>> With the backing bean delete method:
>>>>>
>>>>> @Transactional
>>>>> public String delete() {
>>>>>       itemDao.delete(getItem());
>>>>>       setItems(itemDao.select());
>>>>>       return null;
>>>>> }
>>>>> And the itemDao methods like:
>>>>>
>>>>> public List<Item> select() {
>>>>>       CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>>       CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>>       Root<Item> item = cq.from(Item.class);
>>>>>       cq.distinct(true);
>>>>>       TypedQuery<Item> query = em.createQuery(cq);
>>>>>       List<Item> itemList = query.getResultList();
>>>>>       return itemList;
>>>>> }
>>>>> public void delete(Project project) {
>>>>>       project = find(project.getProjectId());
>>>>>       em.remove(project);
>>>>> }
>>>>> The problem is that after the delete button is clicked the count is
>>>>> correct, the c:forEach is correct, but the ui:repeat is not updated and
>>>>> still shows the deleted element. Can someone suggest how to force the
>>>>> ui:repeat to also refresh?
>>>>>
>>>>>
>>>>>
>

Re: ui repeat fails to reflect collection after render

Posted by Matthew Broadhead <ma...@nbmlaw.co.uk>.
when i create these mvce projects i always wonder why there isn't a 
maven archetype.  in the case of MyFaces maybe a bare bones project with 
jetty-maven-plugin, jpa and jsf all preconfigured ready to create a 
sample...

On 25/01/2018 16:28, Thomas Andraschko wrote:
> In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/
>
> A small maven application with jetty-maven-plugin would be a great example!
>
> 2018-01-25 16:24 GMT+01:00 Matthew Broadhead <matthew.broadhead@nbmlaw.co.uk
>> :
>> ok i will do that.  where do i create an issue?
>>
>>
>> On 25/01/2018 16:20, Thomas Andraschko wrote:
>>
>>> Could you please provide a mvce and create a issue?
>>> Otherwise it's almost impossible to help you.
>>>
>>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>>> matthew.broadhead@nbmlaw.co.uk
>>>
>>>> :
>>>> hi,
>>>> i just posted this question on stack overflow.  but then i tested
>>>> switching to mojarra and that solved my problem so i guessed i would
>>>> report
>>>> it to this list
>>>>
>>>> Consider the following xhtml fragment:
>>>>
>>>> <h:form>
>>>> <h:outputText value="#{myBean.items.size()}" />
>>>> <ui:repeat var="item" value="#{myBean.items}">
>>>>       <div>
>>>>           <h:outputText value="#{item.id} #{item.name}" />
>>>>           <h:commandButton value="delete" action="#{myBean.delete}">
>>>>               <f:setPropertyActionListener target="#{myBean.item}"
>>>> value="#{item}" />
>>>>               <f:ajax render="@form" />
>>>>           </h:commandButton>
>>>>       </div>
>>>> </ui:repeat>
>>>> <c:forEach var="item" items="#{myBean.items}">
>>>>       <div>
>>>>           <h:outputText value="#{item.id} #{item.name}" />
>>>>       </div>
>>>> </c:forEach>
>>>> </h:form>
>>>> With the backing bean delete method:
>>>>
>>>> @Transactional
>>>> public String delete() {
>>>>       itemDao.delete(getItem());
>>>>       setItems(itemDao.select());
>>>>       return null;
>>>> }
>>>> And the itemDao methods like:
>>>>
>>>> public List<Item> select() {
>>>>       CriteriaBuilder cb = em.getCriteriaBuilder();
>>>>       CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>>       Root<Item> item = cq.from(Item.class);
>>>>       cq.distinct(true);
>>>>       TypedQuery<Item> query = em.createQuery(cq);
>>>>       List<Item> itemList = query.getResultList();
>>>>       return itemList;
>>>> }
>>>> public void delete(Project project) {
>>>>       project = find(project.getProjectId());
>>>>       em.remove(project);
>>>> }
>>>> The problem is that after the delete button is clicked the count is
>>>> correct, the c:forEach is correct, but the ui:repeat is not updated and
>>>> still shows the deleted element. Can someone suggest how to force the
>>>> ui:repeat to also refresh?
>>>>
>>>>


Re: ui repeat fails to reflect collection after render

Posted by Thomas Andraschko <an...@gmail.com>.
In our JIRA: https://issues.apache.org/jira/projects/MYFACES/issues/

A small maven application with jetty-maven-plugin would be a great example!

2018-01-25 16:24 GMT+01:00 Matthew Broadhead <matthew.broadhead@nbmlaw.co.uk
>:

> ok i will do that.  where do i create an issue?
>
>
> On 25/01/2018 16:20, Thomas Andraschko wrote:
>
>> Could you please provide a mvce and create a issue?
>> Otherwise it's almost impossible to help you.
>>
>> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <
>> matthew.broadhead@nbmlaw.co.uk
>>
>>> :
>>> hi,
>>> i just posted this question on stack overflow.  but then i tested
>>> switching to mojarra and that solved my problem so i guessed i would
>>> report
>>> it to this list
>>>
>>> Consider the following xhtml fragment:
>>>
>>> <h:form>
>>> <h:outputText value="#{myBean.items.size()}" />
>>> <ui:repeat var="item" value="#{myBean.items}">
>>>      <div>
>>>          <h:outputText value="#{item.id} #{item.name}" />
>>>          <h:commandButton value="delete" action="#{myBean.delete}">
>>>              <f:setPropertyActionListener target="#{myBean.item}"
>>> value="#{item}" />
>>>              <f:ajax render="@form" />
>>>          </h:commandButton>
>>>      </div>
>>> </ui:repeat>
>>> <c:forEach var="item" items="#{myBean.items}">
>>>      <div>
>>>          <h:outputText value="#{item.id} #{item.name}" />
>>>      </div>
>>> </c:forEach>
>>> </h:form>
>>> With the backing bean delete method:
>>>
>>> @Transactional
>>> public String delete() {
>>>      itemDao.delete(getItem());
>>>      setItems(itemDao.select());
>>>      return null;
>>> }
>>> And the itemDao methods like:
>>>
>>> public List<Item> select() {
>>>      CriteriaBuilder cb = em.getCriteriaBuilder();
>>>      CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>>      Root<Item> item = cq.from(Item.class);
>>>      cq.distinct(true);
>>>      TypedQuery<Item> query = em.createQuery(cq);
>>>      List<Item> itemList = query.getResultList();
>>>      return itemList;
>>> }
>>> public void delete(Project project) {
>>>      project = find(project.getProjectId());
>>>      em.remove(project);
>>> }
>>> The problem is that after the delete button is clicked the count is
>>> correct, the c:forEach is correct, but the ui:repeat is not updated and
>>> still shows the deleted element. Can someone suggest how to force the
>>> ui:repeat to also refresh?
>>>
>>>
>

Re: ui repeat fails to reflect collection after render

Posted by Matthew Broadhead <ma...@nbmlaw.co.uk>.
ok i will do that.  where do i create an issue?

On 25/01/2018 16:20, Thomas Andraschko wrote:
> Could you please provide a mvce and create a issue?
> Otherwise it's almost impossible to help you.
>
> 2018-01-25 16:14 GMT+01:00 Matthew Broadhead <matthew.broadhead@nbmlaw.co.uk
>> :
>> hi,
>> i just posted this question on stack overflow.  but then i tested
>> switching to mojarra and that solved my problem so i guessed i would report
>> it to this list
>>
>> Consider the following xhtml fragment:
>>
>> <h:form>
>> <h:outputText value="#{myBean.items.size()}" />
>> <ui:repeat var="item" value="#{myBean.items}">
>>      <div>
>>          <h:outputText value="#{item.id} #{item.name}" />
>>          <h:commandButton value="delete" action="#{myBean.delete}">
>>              <f:setPropertyActionListener target="#{myBean.item}"
>> value="#{item}" />
>>              <f:ajax render="@form" />
>>          </h:commandButton>
>>      </div>
>> </ui:repeat>
>> <c:forEach var="item" items="#{myBean.items}">
>>      <div>
>>          <h:outputText value="#{item.id} #{item.name}" />
>>      </div>
>> </c:forEach>
>> </h:form>
>> With the backing bean delete method:
>>
>> @Transactional
>> public String delete() {
>>      itemDao.delete(getItem());
>>      setItems(itemDao.select());
>>      return null;
>> }
>> And the itemDao methods like:
>>
>> public List<Item> select() {
>>      CriteriaBuilder cb = em.getCriteriaBuilder();
>>      CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>>      Root<Item> item = cq.from(Item.class);
>>      cq.distinct(true);
>>      TypedQuery<Item> query = em.createQuery(cq);
>>      List<Item> itemList = query.getResultList();
>>      return itemList;
>> }
>> public void delete(Project project) {
>>      project = find(project.getProjectId());
>>      em.remove(project);
>> }
>> The problem is that after the delete button is clicked the count is
>> correct, the c:forEach is correct, but the ui:repeat is not updated and
>> still shows the deleted element. Can someone suggest how to force the
>> ui:repeat to also refresh?
>>


Re: ui repeat fails to reflect collection after render

Posted by Thomas Andraschko <an...@gmail.com>.
Could you please provide a mvce and create a issue?
Otherwise it's almost impossible to help you.

2018-01-25 16:14 GMT+01:00 Matthew Broadhead <matthew.broadhead@nbmlaw.co.uk
>:

> hi,
> i just posted this question on stack overflow.  but then i tested
> switching to mojarra and that solved my problem so i guessed i would report
> it to this list
>
> Consider the following xhtml fragment:
>
> <h:form>
> <h:outputText value="#{myBean.items.size()}" />
> <ui:repeat var="item" value="#{myBean.items}">
>     <div>
>         <h:outputText value="#{item.id} #{item.name}" />
>         <h:commandButton value="delete" action="#{myBean.delete}">
>             <f:setPropertyActionListener target="#{myBean.item}"
> value="#{item}" />
>             <f:ajax render="@form" />
>         </h:commandButton>
>     </div>
> </ui:repeat>
> <c:forEach var="item" items="#{myBean.items}">
>     <div>
>         <h:outputText value="#{item.id} #{item.name}" />
>     </div>
> </c:forEach>
> </h:form>
> With the backing bean delete method:
>
> @Transactional
> public String delete() {
>     itemDao.delete(getItem());
>     setItems(itemDao.select());
>     return null;
> }
> And the itemDao methods like:
>
> public List<Item> select() {
>     CriteriaBuilder cb = em.getCriteriaBuilder();
>     CriteriaQuery<Item> cq = cb.createQuery(Item.class);
>     Root<Item> item = cq.from(Item.class);
>     cq.distinct(true);
>     TypedQuery<Item> query = em.createQuery(cq);
>     List<Item> itemList = query.getResultList();
>     return itemList;
> }
> public void delete(Project project) {
>     project = find(project.getProjectId());
>     em.remove(project);
> }
> The problem is that after the delete button is clicked the count is
> correct, the c:forEach is correct, but the ui:repeat is not updated and
> still shows the deleted element. Can someone suggest how to force the
> ui:repeat to also refresh?
>