我有一个使用JSF 2.0制作的简单登录页面.通常在每个登录页面中,Web浏览器建议用户将其用户名保存为密码.
我在Oracle的网站上看到用户必须验证当我输入用户名和密码时,浏览器不会问我是否要保存用户名和密码.也许有一种方法可以从登录页面的代码中禁用它.
这可能吗?
解决方法
您基本上需要将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>
< 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(提及自动完成属性)
> <h:inputSecret>
tag documentation(提及自动完成属性)