我有一个使用JSF 2.0制作的简单登录页面。通常在每个登录页面中,Web浏览器建议用户将其用户名保存为密码。
我在Oracle的网站上看到用户必须验证当我输入用户名和密码时,浏览器不会问我是否要保存用户名和密码。也许有一种方法可以从登录页面的代码中禁用它。
这可能吗?
答案 0 :(得分:13)
您基本上需要将autocomplete="off"
属性添加到HTML <form>
元素。但是,<h:form>
不支持此属性。它仅在单个<h:inputText>
和<h:inputSecret>
组件上受支持。
所以,这应该做:
<h:form>
<h:inputText value="#{auth.username}" required="true" autocomplete="off" />
<h:inputSecret value="#{auth.password}" required="true" autocomplete="off" />
<h:commandButton value="Login" action="#{auth.login}" />
<h:messages />
</h:form>
autocomplete
上的新<h:form>
属性计划用于JSF 2.2。另请参阅JSF spec issue 418。
或者,如果您使用j_security_check
的容器管理登录,无论如何都需要普通的HTML <form>
,那么只需将其添加到其中:
<form action="j_security_check" method="post" autocomplete="off">
<input type="text" name="j_username" />
<input type="password" name="j_password" />
<input type="submit" value="Login" />
</form>
<h:inputText>
tag documentation(提及autocomplete
属性)<h:inputSecret>
tag documentation(提及autocomplete
属性)答案 1 :(得分:0)
您还可以使用Jquery来阻止自动完成选项。所以,我们没有必要为个别领域。
<script>
$(function(){
$("#formID").attr("autocomplete", "off");
});
</script>
答案 2 :(得分:-1)
如果添加“自动完成”不起作用,您可以尝试这个技巧。你应该在真实的“inputText”之后加上这种风格:
<p:inputText style="display: none;"/>