@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>