不,那完全错了。当然,Seam方法中可以有许多参数。它只是爪哇。这个代码很好:
@Stateless
public class BusinessObjectImpl implements BusinessObject {
public void doSomething(SomeObject i01, SomeObject i02) {
}
}
当然,Seam允许您做的一件事是注入任何其他您可能认为有用的类。可能是这样:
@Stateless
public class BusinessObjectImpl implements BusinessObject {
@In
private AnotherObject anotherObject;
public void doSomething(SomeObject i01, SomeObject i02) {
anotherObject.someMethod(i01, i02);
}
}
编辑(基于注释):
有一些方法可以使用jboss el(允许对象作为参数)从一个页面传递多个参数。例如
<h:form>
<h:commandButton action="#{firstBean.performAction(secondBean, thirdBean)}">Go</h:commandButton>
</h:form>
你的哪里
SecondBean
和
ThirdBean
已在会话/对话中填充
@Name
和你的
FirstBean
看起来像:
@Name("firstBean")
@Stateless
public class FirstBean {
public void performAction(SecondBean secondBean, ThirdBean thirdBean) {
//stuff
}
}
但这种方法并不完全优雅,因为它依赖于在当前会话/对话中的secondbean和thirdbean。您最好遵循使用页面控制器或支持be an的方法。这可以是一个pojo,然后调用您的slsb。例如:
<h:form>
<h:commandButton action="#{backingBean.performAction}">Go</h:commandButton>
</h:form>
以及支持bean:
@Name("backingBean")
@Scope(ScopeType.CONVERSATION)
public class BackingBean {
@In
private FirstBean firstBean;
@In
private SecondBean secondBean;
@In
private ThirdBean thirdBean;
public void performAction() {
firstBean.performAction(secondBean, thirdBean);
}
}
这看起来很像你原来的问题;-)