gpt4 book ai didi

java - 在构造函数或 @PostConstruct 方法中设置消息 - 可能吗?

转载 作者:行者123 更新时间:2023-11-30 05:05:21 24 4
gpt4 key购买 nike

是否可以在 Managed-Bean 的构造函数或 @PostConstruct 方法中设置消息?

例如:

public class Example {

@ManagedProperty(value = "#{index.facade}")
private PersistenceFacade pf;

public Example() {
}

@PostConstruct
public void doExample() {
try {
pf.disconnect();

((HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(false)).invalidate();

setMessage("Successful.");
} catch (DAOException e) {
e.printStackTrace();
setMessage("Error: " + e.toString());
}
}

public void setPf(PersistenceFacade pf) {
this.pf = pf;
}

private void setMessage(String message) {
FacesMessage fm = new FacesMessage(message);
FacesContext.getCurrentInstance().addMessage(null, fm);
}

public String back() {
return "/index.xhtml";
}

示例.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Example</title>
</h:head>
<h:body>
<h1>
<h:outputText value="Example" />
</h1>
<h:form>
<p>
<h:commandButton id="back" value="Back"
action="#{example.back}"></h:commandButton>
</p>
<h:messages globalOnly="true" />
</h:form>
</h:body>
</html>

我可以在 Eclipse-Console 中看到该消息,但在页面上看不到,为什么?有什么办法可以告知用户结果吗?

最佳答案

在放置 h:messages 之前尝试放置一些访问 jsf beans 属性的 EL

<h:outputText rendered="#{not empty bean.prop}"  />
<h:messages id="msg" />

不是这样的

 <h:messages id="msg" />
<h:outputText rendered="#{not empty bean.prop}" />

关于java - 在构造函数或 @PostConstruct 方法中设置消息 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297053/

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