[jboss-user] [JBoss Seam] - @Out problem (Seam 1.2.1)
bsmithjj
do-not-reply at jboss.com
Thu Jun 21 14:39:48 EDT 2007
I'm probably missing something trivial, but I am stuck with an @Out issue and hopefully someone can point something out.
First, I have a Seam component that is JavaBean; annotated as such:
@Name("evergreenUser")
| @Roles( {
| @Role(name="accessRequestUser", scope=ScopeType.CONVERSATION),
| @Role(name="userToClone")
| } )
| public class EvergreenUser implements Serializable {
| ...
| }
I have a method in a SFSB that will, based on the value of a @RequestParameter, here is the relative code:
@Stateful
| @Name("accessRequestManager2")
| public class AccessRequestManager2Bean implements AccessRequestManager2 {
|
| @Logger
| private Log log;
|
| @PersistenceContext(unitName = "accessControlDatabase")
| private EntityManager em;
|
| @In
| private UserPrincipal userPrincipal;
|
| @In(required = false)
| @Out
| private Integer currentStep;
|
| @In
| private Conversation conversation;
|
| @In(create = true)
| private DraftAccessRequestMaster draftAccessRequestMaster;
|
| @RequestParameter
| private String selectedUserId;
|
| @Out
| private List<String> errors = new ArrayList<String>();
|
| @Out(required = false)
| private EvergreenUser accessRequestUser;
|
| /**
| * Start a new add-access request. This method also generates the conversationId to
| * use in the conversation that beans of this class are associated with.
| */
| @Begin(id = "DraftAccessRequestID:#{draftAccessRequestMaster.id}", join = true)
| public void startAddRequest() {
| log.info("startAddRequest()");
|
| draftAccessRequestMaster.setCurrentStep(
| currentStep = 1
| );
|
| }
|
| /**
| * Step 2.
| * Select user to clone (optional)
| * Select 1-or-more applications and entitlements
| */
| public void editAccessRequestDetails() {
| if (selectedUserId == null) {
| log.error("User not Selected...TODO - bounce back to step 1.");
| }
| log.info("selectedUserId -> " + selectedUserId);
| accessRequestUser = QueryEPeopleUtil.findUserByUid(selectedUserId);
| log.info("accessRequestUser -> " + accessRequestUser);
|
| draftAccessRequestMaster.setCurrentStep(
| currentStep = 2
| );
| }
| ....
| }
And I use an <s:link ... /> tag to call editAccessRequestDetails()
| <s:link value="#{eUser.name}"
| action="#{accessRequestManager2.editAccessRequestDetails}" propagation="join">
| <f:param value="#{eUser.anumber}" name="selectedUserId"/>
| </s:link>
|
I also have a navigation rule in pages.xml so that when editAccessRequestDetails() is called, another page is displayed
| <page view-id="/user_access_request_step_1.xhtml">
| <navigation from-action="#{accessRequestManager2.editAccessRequestDetails}"
| evaluate="#{draftAccessRequestMaster.currentStep}">
| <rule if-outcome="1">
| <redirect view-id="/user_access_request_step_1.xhtml"/>
| </rule>
| <rule if-outcome="2">
| <redirect view-id="/user_access_request_step_2.xhtml"/>
| </rule>
| </navigation>
| <navigation from-action="#{accessRequestManager2.cancel}">
| <redirect view-id="/index.xhtml"/>
| </navigation>
| </page>
|
I want to display the @Out-jected accessRequestUser on user_access_request_step_2.xhtml (which is where we land after clicking the s:link)
| (from user_access_request_step_2.xhtml)
| #{accessRequestUser.name}
| ... more markup ....
| <h:outputText value="#{accessRequestUser}"/>
| etc...
|
I can see from the log file that the SFSB method is being called, and that the accessRequestUser is being populated by my code, however, the user_access_request_step_2.xhtml page is not able to 'find' the accessRequestUser in any scope (display of attributes or the entire instance is blank). I must be missing something, I've looked this over and over and I can't figure out why @Out isn't working ... help?
Thanks,
Brad Smith
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4056627#4056627
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4056627
More information about the jboss-user
mailing list