2009-04-22 6 views
1

서블릿에 제출하고 doPost() 메소드로 처리하는 양식이 있습니다. 양식이 제출되면 사용자는 브라우저의 뒤로 버튼이 아닌 '뒤로'버튼으로 다른 페이지로 이동합니다. Back 단추를 클릭하면 폼이 원래 입력으로 다시 채워집니다. 이것을 어떻게 할 수 있습니까?Java를 사용하여 양식을 다시 채우는 방법은 무엇입니까?

+1

처음 제목을 읽었을 때 "어떻게 Java 사용을 회복합니까?"라고 생각했습니다. – bigmonachus

답변

0

javascript : history.back()을 사용하는 경우 브라우저가 자동으로 처리합니다.

+2

이렇게하면 POST 데이터를 다시 제출하는 것에 대한 브라우저 경고가 표시됩니다. –

+1

아니요. 그렇지 않습니다. 현재 페이지를 다시로드하지 않고 POST를 사용하여 서버에서 검색하지 않은 이전 페이지를로드합니다. –

2

정보를 유지하고 양식을 수동으로 다시 채우는 것은 사용자의 책임입니다.

  1. 어느 쪽이든 당신은 클라이언트에 컨텐츠를 밀어 다시 때 필요에 읽을 다음 두 가지 방법 중 하나로이 작업을 수행 할 수 있습니다.
  2. 서버 공간에 해당 클라이언트의 양식 데이터를 저장할 수 있습니다.

나중에 양식 데이터를 나타내는 모델을 만드는 것이 좋습니다. 양식이 처리되면 해당 클라이언트에 대한 사본을 저장할 수 있습니다. 페이지가 다시로드되면 이전 모델이 있는지 확인할 수 있습니다. 존재하는 경우 해당 데이터를 사용하여 양식을 채 웁니다. 존재하지 않으면 기본 모델을 사용하거나 빈 값을 사용할 수 있습니다.

콘텐츠를 모델로 수집하여 나중에 도움이되는 다른 장점이 있습니다. 예를 들어 양식을 변경하고 '제출'및 '지우기'버튼 근처에 '실행 취소'버튼이 있으면 마지막으로 알려진 상태로 쉽게 되돌릴 수 있습니다. 활성화 '취소'버튼을하기 위해 당신은 쉽게 수행 할 수 있습니다

boolean isDirty = savedModel.equals(currentModel); 

그리고 부울를 사용하는 대신 값이 있다면 문 참조하십시오 '/ 다른 사람이있는 경우'의 톤을 갖는 '취소'버튼을 활성화/비활성화 변경되었습니다. 훨씬 더 청결한.

Jeach!

0

사용자가 양식에 제출 한 데이터를 따라야합니다.

해당 데이터를 URL, 요청 또는 세션에 저장할 수 있습니다.

안전하지 않은 문자를 다시 폼에 넣을 때 이스케이프 처리해야합니다.

이런 종류의 작업을 쉽게 수행 할 수있는 많은 웹 프레임 워크가 있습니다.

StrutsStripes은 두 가지입니다.

0

원래의 형태는 여러 서버 측 옵션이 제출 한 후 :

  1. 킵 양식 세션에서 값과 '뒤로'액션에서 호출 양식을 채울를;
  2. 양식의 값을 '뒤로'작업 URL의 매개 변수로 추가하여 요청의 일부가되도록합니다.
0

사용자가 양식을 제출하면 데이터가 데이터베이스에 저장됩니까? 그렇다면 데이터베이스를 쿼리하고 양식을 다시 채 웁니다. 그렇지 않은 경우 데이터를 데이터베이스에 저장하는 것을 고려하십시오.

관련 문제