2012-05-23 4 views
3

내가 AP에 경고를 얻을 수없는 이유를 이해하지 않는 일을 아약스 오류를 잡을 수 없습니다 : ajaxStatus 예외는JSF 2에 앱

을 발생한다 나는 기본적으로 facelet 페이지

<p:ajaxStatus onerror="alert('Error occurred!')" /> 

<p:commandLink title="Delete" process="@this" 
    actionListener="#{myBean.deleteData}"> 
    <h:outputText value="Delete" />     
</p:commandLink> 
이 코드를

내 콩에

은, 난 그냥 아약스 상태

public void deleteData(ActionEvent event) { 
    throw new CustomException("Testing"); 
} 

내가 확실하지 오전하지만 경고가 아약스 요청에 트리거되지 않습니다를 테스트하기 위해 예외를 올렸다.

방화범을 확인하고이 아약스 응답을 확인했습니다. 내가 본 서버 로그를 확인하면

<?xml version='1.0' encoding='UTF-8'?> 
<partial-response><changes><update id="javax.faces.ViewState"><![CDATA[5240489117331224423:7642972336085906948]]></update></changes></partial-response> 

는하지만이 왜 그렇게이다

javax.faces.event.AbortProcessingException: /pages/members.xhtml @208,128 actionListener="#{myBean.deleteData}": com.test.CustomException: Testing 

등록? Primefaces p:ajaxStatus 3.2 문서에서

Primefaces 3.2/글래스 피쉬/JSF 2.0

+0

저는 실제로이 게시물을 BalusC가보고 있습니다. http://stackoverflow.com/questions/4523991/jsf-2-ajax-errors-not-displayed 나는 그들이 몇 가지면에서 비슷하다고 생각했습니다. –

+0

당신은 사전에 관련 질문을했습니다. (피드백을 보내지는 않으 셨습니다.) http://stackoverflow.com/questions/10699327/linking-server-side-message-exception-with-ajax-request – BalusC

+0

죄송합니다 .. 이미 그 대답했다. 감사! –

답변

2

: 방화범

onerror: Client side callback to execute when an ajax request fails. 

당신은 정기적으로 아약스 응답을 얻을. 따라서 요청이 실패하지 않았습니다. 내 이해에서 실패는 응답이 없거나 부적절하다는 것을 의미합니다. 당신이 보는 것은 예상되는 행동입니다.

업데이트 : perissf가 주석을 달았으므로 일반적인 방법은 액션 메소드에서 FacesMessage를 생성하고 h:messages 태그를 ajax 요청으로 업데이트하는 것입니다.

+0

아, 그래. 그런 경우 어떻게 대처합니까? 내가 그걸로 할 수있는 게 없니? –

+0

내가가는 길은 javax.faces.Message를 사용한다고 생각한다. 오류 수준 – perissf

+0

을 비롯한 다양한 수준/심각도 유형의 메시지를 보낼 수 있습니다. 내 대답이 업데이트되었습니다. –