표시 할 오류 메시지가없는 경우 (예 : 사용자가 오류 페이지에 책갈피를 지정한 경우) 내 seam 응용 프로그램의 오류 페이지를 홈 페이지로 리디렉션하려고합니다.표시 할 오류가 없을 때 오류 페이지에서 리디렉션
는이 같은 오류 페이지로 직접 pages.xml의 규칙의 번호 유무 : 없음 메시지를 확인하려고 몇 가지 실패 EL 표현식을 시도 후
<!-- pages.xml -->
<exception class="org.jboss.seam.framework.EntityNotFoundException"
log-level="warn">
<redirect view-id="/error.xhtml">
<message severity="warn">#{messages['jsf.RecordNotFound']}</message>
</redirect>
</exception>
을, 나는 백업 콩에 추가 확인을하십시오 :
<!-- pages.xml -->
<page view-id="/error.xhtml">
<action execute="#{facesMessagesUtil.getGlobalMessagesCount()}" />
<navigation>
<rule if-outcome="none">
<redirect view-id="/home.xhtml"/>
</rule>
</navigation>
</page>
.
//FacesMessagesUtil.java
import javax.faces.context.FacesContext;
import org.jboss.seam.faces.FacesMessages;
...
public String getGlobalMessagesCount()
{
log.info("currently {0} global facesMessages (seam)", FacesMessages.instance().getCurrentGlobalMessages().size());
log.info("found messages in faces context: {0}", FacesContext.getCurrentInstance().getMessages().hasNext());
log.info("got maximum severity: {0}", FacesContext.getCurrentInstance().getMaximumSeverity());
if (!FacesContext.getCurrentInstance().getMessages().hasNext())
{
return "none";
}
return "some";
}
위의 방법은 내가 수동으로 오류를 생성 할 때 호출하지만,이 집 로 리디렉션 및이 오류 메시지가 표시됩니다. 나를 여부를 확인 할 수 심 2의 클래스가 있는가
16:41:41,908 INFO [FacesMessagesUtil] currently 0 global facesMessages (seam)
16:41:41,908 INFO [FacesMessagesUtil] found messages in faces context: false
16:41:41,908 INFO [FacesMessagesUtil] got maximum severity: null
- : 로그 메시지는 내가 사용하는 클래스가 표시되는 메시지의 가시성을 확보하지 않는 것보고 메시지가 있습니까?
- 추가 빈없이이 검사를 수행 할 수있는 EL 표현식이 있습니까?
JSF 1.x 또는 2.x? – BalusC
JBoss가 제공하는 JSF 1.1 (EWP 5.1.2) –