11 Replies Latest reply on Apr 10, 2006 12:30 AM by chane

    Possible to open new window with s:link?

      I have just started to seriously work with Seam (and actually this is my first app with JSF/facelets also). I am trying to get the following use case to work and am wondering if it is possible with Seam (or maybe this is a generic JSF question).

      Basically, I have a search screen that returns a results screen in a <h:dataTable/> (standard stuff). From here I would like the user to be able to open one of the detail records in a new window (right click open in tab in firefox).

      In our current struts app, this isn't a problem (since all state is passed in the URL).

      To use a common example, I am trying to modify the seam-issues example application findIssue.jsp. The link on the issue description is currently a commandLink:

      <h:commandLink value="#{issue.shortDescription}" action="#{issueEditor.select}"/>
      


      When this link is clicked navigates to the editIssue.jsp. When I open this link in a new tab, the findIssue.jsp page is redisplayed.

      I have been trying to use the <s:link /> ui command to allow the user to open this link in a new window (I use firefox for testing purposes if that might make a difference) without any success.

      Should it be possible to open the issue in a new tab/window? Any suggestions on how to do this with JSF/Seam?

      If this is really a gernic JSF question and I should go ask in the JSF/MyFaces forums, not a problem. I'm trying to learn a few new pieces at the same time.....

      Thanks,
      Chris....



        • 1. Re: Possible to open new window with s:link?
          mirko27

          Look at booking example. There are explanations opened in new window.

          • 2. Re: Possible to open new window with s:link?
            gavin.king

            Yes, the CVS version of the booking demo does exactly this.

            • 3. Re: Possible to open new window with s:link?

              Excellent!

              I just grabbed the latest CVS code and the example works great!

              However, I can't seem to make it work in my simple application. Is there any special setup I need to do in order to use the Seam UI components? I have my sample appication working almost identically to the booking example (except the link doesn't work).

              I am using the latest Seam CVS code (4/9/2006 8:00pm EST). I have recompiled
              - jboss-seam.jar
              - and jboss-seam-ui.jar and put it into my war (inside the ear).

              When I navigate to my page that has the <s:link /> and execute the link... the link just opens the same view again (the results list). I am expecting the view.xhtml to open.

              Here is the Search Action I am using:

              package com.sample;
              
              @Name("personFinder")
              @Stateful
              @Scope(ScopeType.SESSION)
              @Interceptors(SeamInterceptor.class)
              public class ActionPersonFinder implements IPersonFinder, Serializable{
              
               private static final long serialVersionUID = -730689360852969695L;
              
               private static final Log log = LogFactory.getLog(ActionPersonFinder.class);
              
               @DataModel
               private List<Person> personList;
              
               @DataModelSelection
               private Person selectedPerson;
              
               @In(create = true)
               private EntityManager entityManager;
              
               @Begin(join=true)
               public String find(){
               log.fatal("FINDING! em["+entityManager+"]");
              
               Query query = entityManager.createQuery("from com.its.entity.contact.Person");
               personList = (List<Person>) query.getResultList();
              
               log.fatal("FOUND!");
              
               return "found";
               }
              
               @End
               public String cancel(){
               return "cancel";
               }
              
               @Destroy
               @Remove
               public void destroy(){
               }
              
               public Person getSelectedPerson(){
               return selectedPerson;
               }
              
               public void setSelectedPerson(Person selectedPerson){
               this.selectedPerson = selectedPerson;
               }
              
              }
              


              Here is the search results.xhtml displayed from the "find" method above:
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
              <ui:composition xmlns="http://www.w3.org/1999/xhtml"
               xmlns:ui="http://java.sun.com/jsf/facelets"
               xmlns:f="http://java.sun.com/jsf/core"
               xmlns:h="http://java.sun.com/jsf/html"
               xmlns:s="http://jboss.com/products/seam/taglib"
               template="template.xhtml">
              
               <ui:param name="page" value="Two"/>
               <ui:define name="title">Person Results Screen</ui:define>
               <ui:define name="content">
               <h:form>
               <h:outputText value="No Contacts Found" rendered="${personList.rowCount==0}"/>
               <h:outputText value="Contacts Found!!!!!!!" rendered="${personList.rowCount>0}"/>
               <h:dataTable value="${personList}" var="contact" rendered="${personList.rowCount>0}">
               <h:column>
               <s:link action="${personEditor.view}">
               View Link 1
               <f:param name="contactId" value="${contact.id}"/>
               </s:link>
               </h:column>
               <h:column>
               <f:facet name="header">ID</f:facet>
               ${contact.id}
               </h:column>
               <h:column>
               <f:facet name="header">First Name</f:facet>
               ${contact.fname}
               </h:column>
               <h:column>
               <f:facet name="header">Last Name</f:facet>
               ${contact.lname}
               </h:column>
               <h:column>
               <f:facet name="header">Oragnization</f:facet>
               ${contact.organization.name}
               </h:column>
               </h:dataTable>
               </h:form>
               </ui:define>
               <ui:define name="caption">Person Results Screen</ui:define>
              
              </ui:composition>


              The link created on the results screen is:
              http://localhost:8080/facelets-sandbox/results.its?contactId=1&actionMethod=personEditor.view&conversationId=9&dataModelSelection=personList[0]
              


              I have using propogation="false" on the s:link so that the conversationId is not generated. The results stay the same though.

              Here is the edit action. The @Create method is never called.
              package com.sample;
              
              
              @Stateful
              @Name("personEditor")
              @Interceptors(SeamInterceptor.class)
              @Conversational(ifNotBegunOutcome="noConversation")
              public class ActionPersonEditor implements IPersonEditor, Serializable{
              
               private static final long serialVersionUID = -3036136121465320027L;
              
               private static final Log log = LogFactory.getLog(ActionPersonFinder.class);
              
               @RequestParameter
               private Long contactId;
              
               @Out
               private Person contact;
              
               @Out
               private boolean editDisabled = true;
              
               @In(create = true)
               private EntityManager entityManager;
              
               @In
               private ActionPersonFinder personFinder;
              
               @Create
               @Begin
               public void initialize(){
               System.out.println("CREATE PERSON EDITOR");
               //start a new conversation....
               contact = entityManager.find(Person.class, contactId);
               }
              
               public String view(){
               editDisabled=true;
               return "view";
               }
              
               public String edit(){
               editDisabled=false;
               return "edit";
               }
              
               public String save(){
               editDisabled=true;
               return "saved";
               }
              
               @End
               public String cancel(){
               editDisabled=true;
               entityManager.refresh(contact);
               return "cancel";
               }
              
               @Destroy
               @Remove
               public void destroy(){
               }
              
               public Person getContact(){
               return contact;
               }
              
               public void setContact(Person contact){
               this.contact = contact;
               }
              
               public boolean getEditDisabled(){
               return editDisabled;
               }
              
              }
              


              I hate to ask people to debug my code; but any thoughts on something I can try to get the link to work would be much appreciated.

              Thanks,
              Chris....

              • 4. Re: Possible to open new window with s:link?
                gavin.king

                What is your navigation rule for the "view" outcome?

                • 5. Re: Possible to open new window with s:link?

                  I have tried the following with and without the <from-view-id>. And this the only navigation rule that contains <from-outcome>view</from-outcome>.

                   <navigation-rule>
                   <from-view-id>/results.xhtml</from-view-id>
                   <navigation-case>
                   <from-outcome>view</from-outcome>
                   <to-view-id>/view.xhtml</to-view-id>
                   </navigation-case>
                   <navigation-case>
                   <from-outcome>edit</from-outcome>
                   <to-view-id>/view.xhtml</to-view-id>
                   </navigation-case>
                   </navigation-rule>
                  


                  • 6. Re: Possible to open new window with s:link?
                    gavin.king

                    remove the <from-view-id>

                    • 7. Re: Possible to open new window with s:link?

                      ok - I removed the <from-view-id> and it still doesn't work.

                      Also, when I look at the log file when I execute the booking demo I see the following:

                      
                      2006-04-09 22:46:02,484 DEBUG [org.jboss.seam.contexts.Lifecycle] >>> Begin web request
                      2006-04-09 22:46:02,484 DEBUG [org.jboss.seam.Component] instantiating Seam component: org.jboss.seam.core.manager
                      2006-04-09 22:46:02,484 DEBUG [org.jboss.seam.core.Manager] No stored conversation
                      2006-04-09 22:46:02,484 DEBUG [org.jboss.seam.contexts.Contexts] found in application context: org.jboss.seam.core.init
                      2006-04-09 22:46:02,484 DEBUG [org.jboss.seam.contexts.Contexts] found in session context: hotels
                      2006-04-09 22:46:02,484 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] After restore view, conversation context: ConversationContext(5)
                      2006-04-09 22:46:02,593 DEBUG [org.jboss.seam.Component] instantiating Seam component: hotelBooking
                      <snip />
                      


                      So, that last line says that Seam is finding the hotelBooking component.

                      When I look at the log for my sample application, there is not a line saying Seam is trying to find my personEditor component? Could I not be creating the personEditor correctly?

                      Chris...

                      • 8. Re: Possible to open new window with s:link?

                        Although in the log file I see the personEditor being deployed by Seam:

                        
                        2006-04-09 22:58:25,921 INFO [javax.servlet.ServletContextListener] Welcome to Seam 1.0 beta 2
                        2006-04-09 22:58:25,953 INFO [org.jboss.seam.init.Initialization] reading properties from: /seam.properties
                        2006-04-09 22:58:25,968 DEBUG [org.jboss.seam.init.Initialization] not found: /seam-jndi.properties
                        2006-04-09 22:58:25,968 INFO [org.jboss.seam.init.Initialization] initializing Seam
                        2006-04-09 22:58:26,015 INFO [org.jboss.seam.Component] Component: org.jboss.seam.core.init, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Init
                        2006-04-09 22:58:26,062 DEBUG [org.jboss.seam.Component] org.jboss.seam.core.init.jndiPattern=facelets-sandbox/#{ejbName}/local
                        2006-04-09 22:58:26,062 DEBUG [org.jboss.seam.Component] org.jboss.seam.core.init.managedPersistenceContexts=entityManager
                        2006-04-09 22:58:26,078 INFO [org.jboss.seam.Component] Component: org.jboss.seam.core.pages, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Pages
                        2006-04-09 22:58:26,109 INFO [org.jboss.seam.Component] Component: org.jboss.seam.core.manager, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Manager
                        2006-04-09 22:58:26,140 INFO [org.jboss.seam.Component] Component: switcher, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.Switcher
                        2006-04-09 22:58:26,156 INFO [org.jboss.seam.Component] Component: redirect, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Redirect
                        2006-04-09 22:58:26,187 INFO [org.jboss.seam.Component] Component: isUserInRole, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.IsUserInRole
                        2006-04-09 22:58:26,187 INFO [org.jboss.seam.Component] Component: conversation, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Conversation
                        2006-04-09 22:58:26,218 INFO [org.jboss.seam.Component] Component: conversationList, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationList
                        2006-04-09 22:58:26,234 INFO [org.jboss.seam.Component] Component: conversationStack, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationStack
                        2006-04-09 22:58:26,265 INFO [org.jboss.seam.Component] Component: facesContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesContext
                        2006-04-09 22:58:26,281 INFO [org.jboss.seam.Component] Component: pageContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.PageContext
                        2006-04-09 22:58:26,296 INFO [org.jboss.seam.Component] Component: eventContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EventContext
                        2006-04-09 22:58:26,328 INFO [org.jboss.seam.Component] Component: sessionContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SessionContext
                        2006-04-09 22:58:26,359 INFO [org.jboss.seam.Component] Component: statelessContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.StatelessContext
                        2006-04-09 22:58:26,390 INFO [org.jboss.seam.Component] Component: applicationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ApplicationContext
                        2006-04-09 22:58:26,421 INFO [org.jboss.seam.Component] Component: conversationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationContext
                        2006-04-09 22:58:26,453 INFO [org.jboss.seam.Component] Component: businessProcessContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.BusinessProcessContext
                        2006-04-09 22:58:26,484 INFO [org.jboss.seam.Component] Component: locale, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Locale
                        2006-04-09 22:58:26,500 INFO [org.jboss.seam.Component] Component: messages, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.Messages
                        2006-04-09 22:58:26,515 INFO [org.jboss.seam.Component] Component: facesMessages, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesMessages
                        2006-04-09 22:58:26,562 INFO [org.jboss.seam.Component] Component: resourceBundle, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ResourceBundle
                        2006-04-09 22:58:26,578 INFO [org.jboss.seam.Component] Component: localeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.LocaleSelector
                        2006-04-09 22:58:26,593 INFO [org.jboss.seam.Component] Component: uiComponent, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.UiComponent
                        2006-04-09 22:58:26,609 INFO [org.jboss.seam.Component] Component: org.jboss.seam.debug.introspector, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.debug.Introspector
                        2006-04-09 22:58:26,656 INFO [org.jboss.seam.Component] Component: org.jboss.seam.debug.contexts, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.debug.Contexts
                        2006-04-09 22:58:26,687 INFO [org.jboss.seam.Component] Component: org.jboss.seam.remoting.messaging.subscriptionRegistry, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.remoting.messaging.SubscriptionRegistry
                        2006-04-09 22:58:26,718 DEBUG [org.jboss.seam.Component] instantiating Seam component: org.jboss.seam.core.init
                        2006-04-09 22:58:26,718 INFO [org.jboss.seam.Component] Component: entityManager, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.ManagedPersistenceContext
                        2006-04-09 22:58:26,750 DEBUG [org.jboss.seam.Component] entityManager.persistenceUnitJndiName=java:/fsEntityManagerFactory
                        2006-04-09 22:58:26,750 INFO [org.jboss.seam.deployment.Scanner] scanning: /C:/app/jboss/4.0.4RC1/server/default/tmp/deploy/tmp15784facelets-sandbox.ear-contents/facelets-sandbox.jar
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] archive: C:\app\jboss\4.0.4RC1\server\default\tmp\deploy\tmp15784facelets-sandbox.ear-contents\facelets-sandbox.jar
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: META-INF/
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: META-INF/MANIFEST.MF
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/Menu.class
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/MenuItem.class
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/TestBean.class
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/User.class
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/backoffice/
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/backoffice/actions/
                        2006-04-09 22:58:26,781 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/backoffice/actions/ActionPersonEditor.class
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/backoffice/actions/ActionPersonFinder.class
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/backoffice/actions/inf/
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/backoffice/actions/inf/IPersonEditor.class
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/backoffice/actions/inf/IPersonFinder.class
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/entity/
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/entity/contact/
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/entity/contact/Organization.class
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: com/its/entity/contact/Person.class
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: META-INF/persistence.xml
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: import.sql
                        2006-04-09 22:58:26,796 DEBUG [org.jboss.seam.deployment.Scanner] found: seam.properties
                        2006-04-09 22:58:26,796 INFO [org.jboss.seam.Component] Component: testBean, scope: STATELESS, type: JAVA_BEAN, class: com.its.TestBean
                        2006-04-09 22:58:26,812 INFO [org.jboss.seam.Component] Component: personEditor, scope: CONVERSATION, type: STATEFUL_SESSION_BEAN, class: com.its.backoffice.actions.ActionPersonEditor, JNDI: facelets-sandbox/ActionPersonEditor/local
                        2006-04-09 22:58:26,843 INFO [org.jboss.seam.Component] Component: loggedInUser, scope: STATELESS, type: JAVA_BEAN, class: com.its.User
                        2006-04-09 22:58:26,859 INFO [org.jboss.seam.Component] Component: personFinder, scope: SESSION, type: STATEFUL_SESSION_BEAN, class: com.its.backoffice.actions.ActionPersonFinder, JNDI: facelets-sandbox/ActionPersonFinder/local
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: pageContext
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: eventContext
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: facesContext
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: sessionContext
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: statelessContext
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: conversationContext
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: isUserInRole
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: applicationContext
                        2006-04-09 22:58:26,890 DEBUG [org.jboss.seam.Component] instantiating Seam component: businessProcessContext
                        2006-04-09 22:58:26,890 INFO [org.jboss.seam.init.Initialization] done initializing Seam
                        2006-04-09 22:58:26,906 INFO [org.apache.myfaces.config.FacesConfigurator] Reading standard config org/apache/myfaces/resource/standard-faces-config.xml
                        2006-04-09 22:58:26,968 INFO [org.apache.myfaces.config.FacesConfigurator] Reading config jar:file:/C:/app/jboss/4.0.4RC1/server/default/tmp/deploy/tmp15784facelets-sandbox.ear-contents/jboss-seam.jar!/META-INF/faces-config.xml
                        2006-04-09 22:58:27,015 INFO [org.apache.myfaces.config.FacesConfigurator] Reading config jar:file:/C:/app/jboss/4.0.4RC1/server/default/tmp/deploy/tmp15784facelets-sandbox.ear-contents/facelets-sandbox-exp.war/WEB-INF/lib/jboss-seam-ui.jar!/META-INF/faces-config.xml
                        2006-04-09 22:58:27,046 INFO [org.apache.myfaces.config.FacesConfigurator] Reading config jar:file:/C:/app/jboss/4.0.4RC1/server/default/tmp/deploy/tmp15784facelets-sandbox.ear-contents/facelets-sandbox-exp.war/WEB-INF/lib/jsf-facelets.jar!/META-INF/faces-config.xml
                        2006-04-09 22:58:27,078 INFO [org.apache.myfaces.config.FacesConfigurator] Reading config /WEB-INF/faces-config.xml
                        2006-04-09 22:58:27,125 ERROR [org.apache.myfaces.util.LocaleUtils] Locale name null or empty, ignoring
                        2006-04-09 22:58:27,250 INFO [org.apache.myfaces.webapp.StartupServletContextListener] ServletContext 'C:\app\jboss\4.0.4RC1\server\default\.\tmp\deploy\tmp15784facelets-sandbox.ear-contents\facelets-sandbox-exp.war\' initialized.
                        2006-04-09 22:58:27,281 DEBUG [org.jboss.web.tomcat.filters.ReplyHeaderFilter] Adding header name: X-Powered-By='Servlet 2.4; JBoss-4.0.4RC1 (build: CVSTag=JBoss_4_0_4_RC1 date=200602071519)/Tomcat-5.5'
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.web.tomcat.tc5.TomcatDeployer] Initialized: {WebApplication: /C:/app/jboss/4.0.4RC1/server/default/tmp/deploy/tmp15784facelets-sandbox.ear-contents/facelets-sandbox-exp.war/, URL: file:/C:/app/jboss/4.0.4RC1/server/default/tmp/deploy/tmp15784facelets-sandbox.ear-contents/facelets-sandbox-exp.war/, classLoader: java.net.FactoryURLClassLoader@126cdd1:19320273} jboss.web:j2eeType=WebModule,name=//localhost/facelets-sandbox,J2EEApplication=none,J2EEServer=none
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.web.WebModule] Started jboss.web.deployment:war=facelets-sandbox.war,id=-195878387
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.system.ServiceController] Starting dependent components for: jboss.web.deployment:war=facelets-sandbox.war,id=-195878387 dependent components: []
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.deployment.MainDeployer] End deployment start on package: facelets-sandbox.war
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.system.ServiceController] starting service jboss.j2ee:service=EARDeployment,url='facelets-sandbox.ear'
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.deployment.EARDeployment] Starting jboss.j2ee:service=EARDeployment,url='facelets-sandbox.ear'
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.deployment.EARDeployment] Started jboss.j2ee:service=EARDeployment,url='facelets-sandbox.ear'
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.system.ServiceController] Starting dependent components for: jboss.j2ee:service=EARDeployment,url='facelets-sandbox.ear' dependent components: []
                        2006-04-09 22:58:27,312 INFO [org.jboss.deployment.EARDeployer] Started J2EE application: file:/C:/app/jboss/4.0.4RC1/server/default/deploy/facelets-sandbox.ear
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.deployment.MainDeployer] End deployment start on package: facelets-sandbox.ear
                        2006-04-09 22:58:27,312 DEBUG [org.jboss.deployment.MainDeployer] Deployed package: file:/C:/app/jboss/4.0.4RC1/server/default/deploy/facelets-sandbox.ear
                        
                        


                        • 9. Re: Possible to open new window with s:link?

                          I found the issue.

                          In my s:link command, I was using ${personEditor.view}.

                          When I changed this to #{personEditor.view} it worked!

                          I found this by looking at the code in SeamPhaseListener line 104. But that is probably coincidence as I don't see how that line caused this behavior:

                          String expression = "#{" + action + "}";
                          


                          Anyway, if possible, can the s:link action accept $ also? I have opened a JIRA for tracking:
                          http://jira.jboss.com/jira/browse/JBSEAM-202


                          • 10. Re: Possible to open new window with s:link?
                            gavin.king

                            Why do you want to use $?? # is preferred.

                            • 11. Re: Possible to open new window with s:link?

                              Good to know. It's just more natural for me to read. I've worked with other languages/applications where the $ was used for expression/variable substitution.

                              It's not a problem to change my style - particularly if that is the way the jsf/facelets community is shaping up. Since el expressions can be either symbol, I just choose the dollar sign.

                              The fact the the # is recommended to use (and the $ will not work in some specific cases) should probably be documented somewhere. I'm sure not everyone wants to spend 5 hours hunting for a syntax bug :)

                              On the very positive side, the more I work with and hunt down stuff like this, I learn a lot more about Seam and EJB. I am really starting to like the framework and am overcoming my apprehension about working with an EJB application server (have used struts/web container almost exclusively for my java web development).

                              Thanks again!

                              Chris....