Outjection Problem
sws42 Jul 3, 2006 3:32 AMHi!
I've an application similar to the booking-example.
You can select an item from a list and go to a page to edit this item.
I have a stateful bean, from which the list is populated via @DataModel. I get back a @DatamodelSelction, which is a simple Bean, no Seam Component. In my JSP, I call an action method in another bean, which requests an EntityBean from the Database. I want to outject this row, but always get an
org.jboss.seam.RequiredException: Out attribute requires value for component: walzeedit.walze
Here is my code:
Entity Bean:
@Entity
@Name("walze")
@Table(name="WALZEN"
, uniqueConstraints = { }
)
public class Walzen implements java.io.Serializable {
.
.
.
List:
@Name("walzenuebersicht")
@Stateful
@Scope(ScopeType.SESSION)
@LoggedIn
public class WalzenUebersichtBean
implements WalzenUebersicht {
private String hydronummer = null;
private String gruppe = null;
@In (create=true)
private EntityManager walzenDatabase;
@DataModel
private List<WalzenElement> walzenliste;
@DataModelSelection
WalzenElement selectedWalze;
@Out(scope=ScopeType.CONVERSATION,required=false)
Map<WalzenElement, Boolean> walzenSelection;
@Factory("walzenliste")
public void zeigeWalzen() {
.
.
public WalzenElement getSelectedWalze() {
return selectedWalze;
}
.
.
EditBean:
@Name("walzeedit")
@Stateful
@LoggedIn
public class WalzeEditBean
implements WalzeEdit{
@In (create=true)
private EntityManager walzenDatabase;
@In
private WalzenUebersicht walzenuebersicht;
@Out
private Walzen walze;
.
.
.
@Begin
public String aendern(){
WalzenElement selectedWalze = walzenuebersicht.getSelectedWalze();
walze = (Walzen) walzenDatabase.createQuery("SELECT w FROM Walzen w WHERE id = :id")
.setParameter("id", selectedWalze.getId())
.getSingleResult();
return "editWalze";
}
List JSP:
.
.
<t:dataTable id="walzen" var="aktwalze" value="#{walzenliste}"
styleClass="listtable" headerClass="listtablehead"
rowClasses="oddrow,evenrow">
<t:column styleClass="colCenter" style="width:5%;">
<h:selectBooleanCheckbox value="#{walzenSelection[aktwalze]}" />
</t:column>
<t:column styleClass="colCenter" style="width:5%;">
<h:commandLink id="aendern" value="#{aktwalze.id}"
action="#{walzeedit.aendern}" />
</t:column>
<t:column styleClass="colLeft" style="width:10%;">
<h:outputLabel value="#{aktwalze.hydronummer}" />
</t:column>
.
.
Edit JSP:
.
.
<table>
<tr>
<td style="width: 23%;"><h:outputLabel value="Walze : " /></td>
<td style="width: 23%;"><h:outputLabel value="#{editWalze.id}" />
</td>
<td style="width: 4%;"></td>
<td style="width: 24%;"></td>
<td style="width: 24%;"></td>
</tr>
<tr>
<td style="width: 24%;"><h:outputLabel value="Hydronummer" /></td>
<td style="width: 24%;"><h:inputText
value="#{editWalze.hydronummer}" size="20" maxlength="20"
id="hydroNummer" /></td>
.
.
Can anybody help me?
If I set the required-Attribute of the Out-Parameter, the error disappears, but I can see the Outjected walze on the debugpage in a conversation-Context.
What am I doing wrong? Can anybody help me?
Thanks in advance
Stefan