FacesMessge не очищается на сервере WebSphere Liberty 20.0.0.2 - PullRequest
0 голосов
/ 17 апреля 2020

Разрабатываю приложение с использованием JSF 2.2.16, PrimeFaces 6.2 и сервера WebSphere Liberty, сейчас обновляю сервер Liberty с 19.0.0.11 до 20.0.0.2. Здесь сталкиваюсь с проблемой, что FacesMessage не очищается по запросу. Ниже мой пример кода,

Вот моя страница jsf 'welcome.x html' выглядит так,

 <!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:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:t="http://myfaces.apache.org/tomahawk"
  xmlns:p="http://primefaces.org/ui">

<h:head>
 </h:head>
 <h:body>
  <h1>Hello World PrimeFaces</h1>
 <h:form>
     <p:message id="mainMessages" globalOnly="true" autoUpdate="true"/>
     <p:commandButton action="#{mainBean.redirect}" value="submit" />
  </h:form>

</h:body>
 </html>

Вот мой 'redirect.x html' выглядит так ,

 <!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:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:t="http://myfaces.apache.org/tomahawk"
  xmlns:p="http://primefaces.org/ui">
<h:head>
 </h:head>
 <h:body>
  <h1>Redirect</h1>
 <h:form>
     <p:message id="mainMessages" globalOnly="true" autoUpdate="true"/>
 </h:form>
</h:body>
 </html>

ниже - мой образец java кода,

 @Named(value="mainBean")
 @ViewAccessScoped
 public class MainBean {

public String redirect(){
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "save");
    FacesContext.getCurrentInstance().addMessage(null, message);
    return "redirect"
 }

}

ниже - образец конфигурации навигации. xml,

<navigation-case>
  <from-action>#{mainBean.redirect}</form-action>
  <form-outcome>redirect</form-outcome>
  <to-view-id>/pages/redirect.xhtml</to-view-id>
  <redirect/>
</navigation-case>

Когда я нажмите на кнопку отправить, она успешно перенаправлена ​​на страницу redirect.x html. Но сообщение не отображалось на экране при использовании сервера WebSphere Liberty 19.0.0.11. Но когда я обновляю сервер до 20.0.0.2. На экране появляется сообщение. Хотелось бы узнать причину, по которой сообщение появилось на экране после перенаправления.

...