Looks like you need to change entry.mark to just mark and remove the <s:property value="%{entry}"/>. Also you probably don't need to pass both the name and id of the parent object.
<a href="<s:url action='DeleteEntryForm' var="entry" escapeAmp="false"> <s:param name="id" value="%{goalToAchieve.id}" /> <s:param name="mark" value="%{mark}" /> </s:url> ">Remove</a> On Mon, Jul 13, 2009 at 10:48 AM, Dimitrios Christodoulakis < dimi....@gmail.com> wrote: > Thanks for letting me know. Alright, so: > > This is the parent class: > > @Entity > public class GoalToAchieve { > @Id @GeneratedValue > private Long id; > > @org.hibernate.annotations.CollectionOfElements > @JoinTable (name="GoalToAchieve_entry", > joincolum...@joincolumn(name="goalToAchieve_id")) > private Set<JournalEntry> entries = new HashSet<JournalEntry>(); > > public Set<JournalEntry> getEntries() { > return entries; > } > public void setEntries(SortedSet<JournalEntry> entries) { > this.entries = entries; > } > > public void addEntry(JournalEntry newEntry){ > entries.add(newEntry); > } > > public void deleteEntry(JournalEntry entry){ > entries.remove(entry); > } > ..plus some other standard fields with getters and setters > > This is the child-class: > > @Embeddable > public class JournalEntry { > @org.hibernate.annotations.Parent > private GoalToAchieve goalToAchieve; > > @Column > private Long mark; > public Long getMark() { > return mark; > } > public void setMark(long mark){ > this.mark = mark; > } > > @Column(length = 255, nullable = false) > private String entry; > > @Temporal(TemporalType.TIMESTAMP) > @Column(nullable = false, updatable = false) > private Date insertDate = new Date(); > > ..plus the rest getters and setters > > And this this the jsp part where I display the collection: > > <s:if test="goalToAchieve.entries.size > 0"> > <display:table name="goalToAchieve.entries" requestURI="" uid="thisGoal"> > <display:column property="entry" /> > <display:column property="date" sortable="true" > defaultorder="ascending" title="TimeStamp"/> > <display:column property="mark" /> > <display:column> > <a href="<s:url action='UpdateEntryForm'> > <s:param name="name" value="%{goalToAchieve.owner.fullName}" /> > <s:param name="mark" value="#mark" /> > </s:url> > ">Edit</a> > </display:column> > <display:column> > <a href="<s:url action='DeleteEntryForm' var="entry" escapeAmp="false"> > <s:param name="name" value="%{goalToAchieve.owner.fullName}" /> > <s:param name="id" value="%{goalToAchieve.id}" /> > <s:param name="mark" value="entry.mark" /> > <s:property value="%{entry}"/> > </s:url> > ">Remove</a> > </display:column> > </display:table> > </s:if> > > ..and the delete action, which should take an entry reference and > remove it from the collections looks like this: > > public class DeleteEntry extends ActionSupport{ > public String execute(){ > goalToAchieve.deleteEntry(entry); > > return SUCCESS; > } > > private JournalEntry entry; > private GoalToAchieve goalToAchieve; > private long id; > > ... + getters and setters > > I guess right now, my problem has become how to pass a parameter > referring to en entry (the mark field) to the delete action. Next, I > would do a lookup within the action to find the entry object and > remove it from the parent object collection, by calling > deleteEntry(JournalEntry entry) > > On Mon, Jul 13, 2009 at 9:16 AM, Greg Lindholm<greg.lindh...@gmail.com> > wrote: > > You are not providing enough information for anyone to help you. Since > you > > have changed your object and the jsp you had better include them with any > > request. > > > > > > On Mon, Jul 13, 2009 at 9:51 AM, Dimitrios Christodoulakis < > > dimi....@gmail.com> wrote: > > > >> Yes, that is a great suggestion actually. What I did was to add a new > >> field based > >> System.currentTimeMillis(), but the problem is adding it as a url > >> parameter. > >> > >> For example, I am trying to add it as a url parameter below: > >> > >> <a href="<s:url action='UpdateEntryForm'> > >> <s:param name="name" value="%{goalToAchieve.owner.fullName}" /> > >> <s:param name="mark" value="%{mark}" /> > >> </s:url> > >> ">Edit</a> > >> > >> But, the only param passed is the fullName. The mark is not added to > >> the url string. I think this is because the only object available on > >> the valuestack is goalToAchieve, and using deeper notation I can > >> reference as deep as the "entries" collection. But not to fields of > >> each entry object. In other words, the display or iterator help me > >> view the collection objects, but not extract and use any of their > >> fields... I am not sure why this is happening, or if I am doing > >> something wrong. > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > >