gpt4 book ai didi

java - :message not displayed in jsf page

转载 作者:行者123 更新时间:2023-12-01 06:17:27 25 4
gpt4 key购买 nike


我在 jsf 中制作了一个带有登录字段的简单登录页面。如果登录不正确(数据库中未找到用户),页面上应显示一条消息,但不会显示任何内容...
ps : 如果用户什么都不输入,则显示“requiredMessage”中指定的消息。
这是我的 jsf 页面的代码:

<h:body>
<p>Identification</p>
<h:form prependId="false">
login : <h:inputText id="log" value="#{filesystemCtrl.login}" required="true" requiredMessage="Please enter your username"/>
<h:message for="log" style="color:red"/><br/>
<h:commandButton action="#{filesystemCtrl.identifier()}" value="Login"/>
</h:form>
<div id="footer" align="center">
<ui:insert name="footer">


<ui:include src="footer.xhtml" />
</ui:insert >
</div>
</h:body>

这是 ManagedBean 的一部分:

public String identifier() {
client = filesystemFacade.identifier(login);
if (client == null) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage("log", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", "No user found !"));
return "failure";
} else {
return "success";
}
}

最佳答案

您的操作方法返回所有路径中的导航情况。我猜您实际上没有 failure 导航(即 failure.xhtml View ),因此当您的 client 对象为 null 时,您仍然会看到相同的 View ,但没有更新消息。应该发生的情况是重定向到 failure View ,这样浏览器将没有机会显示错误消息。检查您的服务器日志是否有导航错误。

由于您希望浏览器保持在同一页面( View )并更新错误消息,因此您的方法应在添加消息后返回 null,而不是 failure .

关于java - :message not displayed in jsf page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20785552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com