Вы печатаете сообщение на стандартный вывод, который обычно заканчивается в журнале сервера. Это не заканчивается в ответе HTML, который клиент должен получить.
Если вы хотите отобразить какое-либо сообщение при отправке формы JSF, есть несколько способов:
Используйте FacesContext#addMessage()
с <h:messages/>
. Э.Г.
<h:form>
<h:commandButton value="Click" action="#{Test.clicked}" />
<h:messages />
</h:form>
с
public void clicked() {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("This is from the bean class"));
}
Условно отображать компонент всякий раз, когда сообщение доступно. Э.Г.
<h:form>
<h:commandButton value="Click" action="#{Test.clicked}" />
<h:outputText value="#{Test.message}" rendered="#{not empty Test.message}" />
</h:form>
с
private String message;
public void clicked() {
message = "This is from the bean class";
}
public String getMessage() {
return message;
}
Кроме того, ваш класс управляемых бинов отсутствует в пакете. Это абсолютно не рекомендуется. Классы Java, которые должны быть доступны другим классам Java, должны быть помещены в пакет.
Не связано с конкретной проблемой: вы работаете с JSP, который считается устаревшим со времени JSF 2.0 почти 2,5 года назад. JSP сменил Facelets. Убедитесь, что вы читаете последние книги и учебники JSF. Смотрите также нашу вики-страницу JSF .