This applies to a web browser. In particular, Firefox reveals this behavior. The page is requested from the browser cache, and any form data comes from the browser cache, as well as the "last entered" data.
To solve this "problem", you want to disable the browser cache for dynamic JSF requests. The easiest way is to create Filterone that is annotated as @WebFilter(servletNames={"facesServlet"})(where facesServletis <servlet-name> facesServletas defined in web.xml) and contains basically the following in a method 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);
source
share