我在表格行的接缝页中使用了这样的中继器:
<a4j:repeat id="r1279186" value="#{PatientList.entities}" var="Patient" rowKeyVar="rowIndex" >
<tr>
<td>
<a4j:commandButton action="#{PatientAction.inject(Patient)}" id="Button_1279184059161" reRender="Button_1287648925796" limitToList="true" />
</td>
<td >
<span >#{Patient.name_fam}</span>
</td>
<td >
<span >#{Patient.name_giv}</span>
</td>
<td>
<s:link id="Page_1234" action="#{PatientAction.inject(Patient)}" view="/somewhere/patient_details.seam" rendered="true" target="_blank" propagation="join" title="VIS" limitToList="true" >
<img src="images/24x24/info.png" title="VIS" alt="VIS}" style="height: 24px;width: 24px;"/>
</s:link>
</td>
</tr>
PatientAction 是一个 bean,带有一个名为 inject 的方法,它在输入中接受一个 Patient 类 Object。PatientList.entities 是一个 List,中继器在一个名为 Patient 的 var 上循环,对象类的名称相同。
在将页面返回给客户端之前,seam 会为列表中的每个患者(行)呈现姓名和姓氏,并在第一列添加一个按钮,在最后一列添加一个链接。
使用按钮,当我单击按钮时执行操作,接收与我按下按钮的行相对应的注入患者的参数。[好的!]
当我使用链接(我用它打开一个新的浏览器页面,保持相同的对话)时,方法注入在我单击时被调用,但传递的参数为空!(我可以在我的注入方法的调试中看到,即将到来的患者为空)