2011-05-08 4 views
1

jsf 페이지의 데이터를 관리 빈을 사용하여 데이터베이스에 삽입하고 있습니다.
하지만 문제는 내 jsf 페이지가로드 될 때 기존 빈 값이 양식 필드에 표시되지만로드 할 때 양식 필드를 비워두고 싶습니다. 답장을 보내주십시오. 미리 감사드립니다. 빈 필드가있는 양식을 다시 표시하는 방법은 무엇입니까?

<html> 
<body> 
<h:form> 
Id 
<h:inputText value="#{employee.eId}"> 
    <f:convertNumber/>  
</h:inputText>  

Name         
<h:inputText value="#{employee.eName}"> 
     <f:validateRegex pattern="[a-zA-Z ]*"/> 
</h:inputText>  
</h:form> 
</body> 
</html> 

답변

2

세션 범위에 따라서 하지을 요청에 콩을 넣어 또는 범위보기 (와 -이 :

public class Employee implements Serializable{ 
private int eId; 
private String name; 
public String addEmployee(){ 
try{ 
//dbconnection 
String query = "insert into emp values(?,?)"; 
PreparedStatement pstmt = conn.prepareStatement(query); 
pstmt = conn.prepareStatement(query); // create a statement 
pstmt.setInt(1,this.eId); 
pstmt.setString(2,this.eName); 
return "success-page"; 
}catch(Exception e){ 
    return "failure-page"; 
} 
} 

JSF 페이지 :

내 코드 Bean 클래스를 니펫 다음은). 이렇게하면 새 뷰가 요청 될 때 빈이 garbaged되고 다시 작성됩니다.

또한 웹 브라우저에 페이지를 캐시하지 않도록 지시해야합니다. 일부 웹 브라우저 (예 : Firefox)는 브라우저 캐시에서 페이지를 요청할 때 이전 입력 값을 다시 표시합니다.

HttpServletResponse hsr = (HttpServletResponse) response; 
hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
hsr.setDateHeader("Expires", 0); // Proxies. 
chain.doFilter(request, response); 
: 기본적 doFilter() 방법에 따르고 포함 ( facesServletweb.xml에 definied 같이 FacesServlet<servlet-name> 인) @WebFilter(servletNames={"facesServlet"})로 주석 된 filter 만들기
관련 문제