在其他人编写的 jsf 应用程序上工作,我一定遗漏了一些非常基本的东西。我把它精简到这个,这是行不通的:
page.jsp
:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<!doctype html>
<html>
<body>
<f:view>
<h:messages id="error" globalOnly="true"/>
<h:outputText value="#{testBean.msg}"/>
</f:view>
</body>
</html>
testBean.java
:
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
public class testBean {
public String getMsg() {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "getMsg"), null));
return "getMsg";
}
}
该代码不显示生成的错误消息testBean#getMsg
。如果我将 to 移到该<h:messages>
行之后<h:outputText>
,则会显示该消息。这是为什么?这应该工作吗?