2011-09-14 3 views
0

데이터 검색을 위해 사용자 생성 쿼리를 제출하는 보고서 페이지가 있습니다. 쿼리에 대한 데이터가 없으면 facesmessage- "No data"를 세션에 추가하고 제출 단추와 연관 시키므로 단추 옆에 표시됩니다. 사용자가 쿼리를 수정하고 다시 제출하면 'no data'msg를 지우고 싶습니다. 나는 이것을 할 길을 찾을 수 없었다. 나는 sessionmap 또는 requestmap에 메시지를 찾을 수 없으므로 removemessage()를 사용할 수 없습니다. 그래서 당분간은 facesmessages를 빈 요약과 세부 정보로 설정하여 해킹을 사용하고 있습니다. 제출 된 모든 쿼리에 대해 msg를 어떻게 지울 수 있습니까?JSF 각 요청 후 facesmessage 지우기

감사합니다. JSF 1.2, Richfaces 3.3

역행 :


BalusC,

회신 버튼을 찾을 수 없습니다, 그래서 원래 포스트 여기

을 편집하고 내가 가진 무엇 내 보고서 페이지의 bean이 sessionscoped입니다. 이 페이지에는 보고서 유형을 선택하는 드롭 다운 메뉴와 작업 (genrep)에 연결된 제출 버튼이 있습니다. 버튼은 rich : 메시지 태그와 연결됩니다.

보고서 유형을 선택하고 제출할 때 genrep()은 데이터베이스를 검사하여 데이터가 없는지면 얼굴 메시지를 인스턴스화하고 & 요약을 "데이터 없음"으로 설정하고 제출에 추가합니다 버튼을 facescontext의 addmessage 메소드를 통해 호출하십시오.

사용자가 데이터가있는 다른 쿼리를 제출하면 genrep()는 facescontext에서 응답 스트림을 가져오고 contentype을 "application/vnd.ms-excel"로 설정하고 데이터를 기록합니다. 닫기 &은 스트림을 플러시하고 responsecomplete()를 호출합니다. 지금까지는 이전 데이터 쿼리의 버튼 옆에 '데이터 없음'메시지가 계속 표시됩니다.

감사합니다. 사용자가 데이터, genrep()를 facescontext에서 응답 스트림을 얻을 수있는 다른 쿼리를 제출

+0

이것은 이미 기본 동작입니다. 메시지 범위는 요청 범위입니다. 테스트 케이스에 대한 기술적 세부 사항을 더 자세히 설명해야합니다 (필요한 경우 SSCCE 제공). – BalusC

+0

원래 게시물이 수정되었습니다. 확인해주십시오. – pr101

답변

0

는 패키지 contentype에 "응용 프로그램/vnd.ms-엑셀"을 설정하고 여기에 데이터를 기록합니다. 닫기 &은 스트림을 플러시하고 responsecomplete()를 호출합니다. 지금까지는 이전 데이터 쿼리의 버튼 옆에 '데이터 없음'메시지가 계속 표시됩니다.

따라서 파일 다운로드를 제공하지만 현재 페이지도 새로 고침을 기대합니다. HTTP의 특성상 불가능합니다. 단일 요청에서 두 개의 응답을 다시 보낼 수 없습니다 (하나는 파일 다운로드 용이고 다른 하나는 새 페이지 용). 가장 좋은 방법은 클라이언트가 두 개의 요청을 보내거나 onclick 속성의 JavaScript 행을 사용하여 메시지를 숨기는 것입니다. 후자는이 특별한 경우에 더 적합합니다.

+0

감사합니다. 메시지를 숨기는 자바 스크립트가 무분별하게 msg를 포함하는 요소를 숨길 것 같습니다. 그 요소는 숨겨 질 것입니다 B4 코드는 서버에 충돌하여 msg를 표시할지 여부를 결정할 수 있습니다. 나는 이해가되기를 바랍니다. – pr101

+0

나는 "b4"로 무엇을 의미하는지 완전히 모르겠다. (영어를 모국어로 쓰지 말고, SMS/스트리트/채팅/유치한 말에 익숙하지 않다.) 하지만 네가 기본적으로 옳다고 생각해. 네. JS를 사용하여 제 대답에서 제안한 것과 똑같이 클릭시 메시지를 숨 깁니다. – BalusC

+0

"b4"는 "이전"을 의미합니다. 의견에 글자 수 제한이있을 때 "SMS/street/chat/childish speak"을 사용하겠습니다. – pr101