【发布时间】:2015-04-17 10:01:25
【问题描述】:
我有一个简单的 JSF 登录表单,如果用户成功登录,它会重定向。如果用户无法登录,我不想只显示一个文本,而是一个带有消息的 div。只有当用户输入错误的数据并且无法登录时,我才想显示那段 html。
我该如何管理?你能给我一些例子吗,包括 JSF 的表单和支持 bean?
我找到了很多示例,但仅用于显示文本(h:message)。这些示例已经包括一些 html 包装器标记,例如 div ,其中包含该文本。我只想在提交失败时显示 div(如果用户名/密码错误,它将失败)。
让我用没有 JSF 数据的简单 html 来展示它的外观:
<div class="error">Username/password not correct!</div>
<label for="user_name">Username:</label>
<input name="user_name" type="text" id="user_name" maxlength="20"/>
<label for="password">Password:</label>
<input name="password" type="password" id="password" maxlength="20"/>
<input name="Submit" type="submit" id="log_btn" value="Login" />
所以,我希望我足够清楚 - 我不想在开始时显示此表单时拥有该 div 容器,但希望在用户尝试提交并输入错误数据时拥有该 div 容器。我不希望在每个输入下方都出现错误报告,只显示带有我的自定义单个错误消息的 div。
【问题讨论】:
-
我不确定。我不知道如何使用带有消息的 div 包装器的用户 h:message(s)。如果 h:message(s) 可以解决我的问题,我很乐意
-
我不确定 BalusC。不幸的是,我正在工作,这里没有我的 JSF 项目(我正在家里处理它)。我没有看到 div 元素也插入了消息?我应该写 facesContext.addMessage("formid:inputid", facesMessage);像 facesContext.addMessage("div_id:inputid", facesMessage);
-
如何生成自己想要的元素?有时候想显示div或者span,有什么办法可以显示任何我想要的html?
-
我尝试过这样做:不正确!c:if> 但这并不好/部分好,因为我的登录类是 SessionScoped,所以一旦 auth.success_status 获得“错误”状态,就没有办法回来(例如 - 你尝试登录,你会得到正确的错误 div。但是,如果用户随后再次将同一页面写入 url,则会设置错误,尽管它不应该是.. 如何避免那个 Balus C?
-
我需要这个:
所以我的问题用这段代码解决了。错误username/pass