두 개의 매우 유사한 사용 사례가 있습니다. 하나는 작동하고 다른 하나는 사용하지 않습니다. 다른 답변 (JBoss 7.1.1의 JSF2.1, PrimeFaces 3.3)에서 언급 한 기본 사항을 점검했습니다. 작동하지 않는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