I'm very puzzled regarding the behaviour and interaction of the above 
components.  I have used them successfully in some contexts, but am having 
problems with them in other contexts but can't see any pattern.

My understanding was that s:link is to be preferred over the non-Seam 
h:commandButton but things do not seem to be quite that simple as this simple 
example demonstrates:


  | <rich:panel>
  |                     <f:facet name="header">Why Doesn't This Work?</f:facet>
  |                     <h:form>
  |                             <h:dataTable value="#{accountService.things}" 
var="thing">
  |                                     <h:column>
  |                                             <f:facet 
name="header">Name</f:facet>
  |                                             <h:outputText id="name" 
size="10" required="true"
  |                                                     value="#{thing.name}">
  |                                             </h:outputText>
  |                                     </h:column>
  |                                     <h:column>
  |                                             <f:facet 
name="header">Size</f:facet>
  |                                             <h:outputText id="size" 
size="10" required="true"
  |                                                     value="#{thing.size}">
  |                                             </h:outputText>
  |                                     </h:column>
  |                                     <h:column>
  |                                             <s:link value="Select"
  |                                                     
action="#{accountService.selectThing(thing)}" />
  |                                     </h:column>
  |                                     <h:column>
  |                                             <h:commandButton value="Select"
  |                                                     
action="#{accountService.selectThing(thing)}" />
  |                                     </h:column>
  |                                     <h:column>
  |                                             <s:link value="Select (dsm)"
  |                                                     
action="#{accountService.selectThing()}" />
  |                                     </h:column>
  |                                     <h:column>
  |                                             <h:commandButton value="Select 
(dsm)"
  |                                                     
action="#{accountService.selectThing()}" />
  |                                     </h:column>
  |                             </h:dataTable>
  | 
  |                             <h:commandButton value="Show Choices"
  |                                     action="#{accountService.getThings()}" 
/>
  |                     </h:form>
  |             </rich:panel>
  | 


and the corresponding service class:


  |     @DataModel
  |     private List<Thing> things;
  | 
  |     @DataModelSelection("things")
  |     private Thing selectedThing;
  | 
  |     public List<Thing> getThings() {
  |             ThingRepository repository = new ThingRepository();
  |             things = repository.getThings();
  |             return things;
  |     }
  | 
  |     public String selectThing() {
  |             log.info("### DJF Selected: " + selectedThing);
  |             return null;
  |     }
  | 
  |     public String selectThing(Thing thing) {
  |             selectedThing = thing;
  |             log.info("### DJF Selected: " + selectedThing);
  |             return null;
  |     }
  | 

(yes I know I should use a static for the repository ...)

The repository spits out:
  One_1
  Two_22
  Three_333
  Four_4444
  Five_55555
  Size_666666

I then select the second, third, fourth and fifth lines (in that order) with 
the following surprising (to me at least) results:

16:54:43,322 INFO  [AccountService] ### DJF Selected: null
16:54:44,665 INFO  [AccountService] ### DJF Selected: Three_333
16:54:45,931 INFO  [AccountService] ### DJF Selected: One_1
16:54:47,353 INFO  [AccountService] ### DJF Selected: One_1

One out of four is correct!  Why null?  Why does it incorrectly select the 
first element when I have selected a different element?


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4110928#4110928

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4110928
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to