Как заново отобразить форму с пустыми полями? - PullRequest
1 голос
/ 08 мая 2011

Я вставляю данные со страницы jsf в базу данных, используя управляемые bean-компоненты.
Но проблема в том, что когда загружается моя jsf-страница, существующие значения bean-компонентов отображаются в полях формы, но я хочу показать поля формы пустыми ввремя загрузки.Ответьте, пожалуйста.Заранее спасибо.

Ниже приведены мои фрагменты кода. Класс бина:

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: -

<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>

1 Ответ

2 голосов
/ 08 мая 2011

Поместите компонент в область запроса или представления (и, таким образом, , а не в области сеанса).Таким образом, bean-компонент будет обрабатываться и создаваться заново при запросе нового представления.

Кроме того, вам также следует указать веб-браузеру не кэшировать страницу.Некоторые веб-браузеры (например, Firefox) также будут отображать старые входные значения при запросе страницы из кэша браузера.Создайте фильтр , который аннотируется как @WebFilter(servletNames={"facesServlet"}) (где facesServlet - это <servlet-name> FacesServlet, как определено в web.xml) и содержит в основном следующее в методе doFilter():

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);
...