我有兩個非常相似的用例,一個可以工作,另一個不可用。我已經檢查了其他答案中提到的基本事情(使用PrimeFaces 3.3的JBoss 7.1.1上的JSF2.1)。不工作JSF2:並不總是調用commandLink操作方法
void deleteProcessInstance(String processInstanceId, String deleteReason);
現在的樣本:
其作品首次樣本:
<h:form id="processInstanceList">
<p:dataTable id="instances" var="processInstance" value="#{processInstanceList}">
...
<p:column>
<h:commandLink value="#{msg.deleteButtonLabel}"
action="#{runtimeService.deleteProcessInstance(processInstance.id, 'Cancelled by user')}">
</h:commandLink>
與行動方法簽名
<h:form id="taskGrouplist">
<p:dataTable id="groupTasks" value="#{groupTaskList}" var="v_task">
...
<p:column>
<h:commandLink value="Übernehmen" action="#{taskList.claimTask(v_task)}"/>
與操作方法簽名:
@Named
@RequestScoped
public class TaskList {
public String claimTask(Task task);
對於第二個示例,傳遞給操作方法的任務始終爲NULL。如果我只是將任務的屬性傳遞給方法,例如與#{taskList.claimTask(v_task.id)}
(任務有一個getId()方法返回一個字符串),並更改動作方法簽名public String claimTask(String id)
...我傳入的所有內容都是NULL。
爲什麼在第一個樣本中不會發生這種情況?在那裏我通過兩個字符串,它工作正常...
非常感謝你。 @ViewScoped完美的作品:) – Joysn