@Out frustration
texan Sep 7, 2006 1:47 PMI can't get @Out to work as I expected. I'm just testing a trivial stateless session bean with a trivial page. I create a bean, outject it, and try to display its attribute on the page.
The problem is, the bean never makes into the scope that the page is rendered under. If I view "debug.seam", there are no beans in any scope (other than the definitions in the application scope).
However, if I add "(scope=ScopeType.SESSION)" tothe @Out tag, all is well.
I tried other scopes like EVENT and PAGE with no success. How do I simply outject a bean to the page that I'm displaying??? I don't want it in SESSION scope, and there's no value in a conversation in this case.
Here is my code. Let me know if you need my vast array of config files..
package mypackage; import javax.ejb.Local; @Local public interface Test { public String view(); }
package mypackage; import javax.ejb.Stateless; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Out; @Name("test") @Stateless public class TestAction implements Test { @Out private Bean bean; public TestAction() { } public String view() { bean = new Bean("I am a bean"); return "/test.xhtml"; } }
package mypackage; import org.jboss.seam.annotations.Name; @Name("bean") public class Bean { private String name; public Bean() { } public Bean(String name) { this(); setName(name); } public String getName() { return this.name; } public void setName(String name) { this.name = name; } }
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:t="http://myfaces.apache.org/tomahawk" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" prefix="h" xmlns:c="http://java.sun.com/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions"> <body> <h:form> <h:inputText value="#{bean.name}" /> <s:link linkStyle="button" action="#{test.view}" value="View" /> </h:form> </body> </html>