ejb를 통해 jsf 리다이렉션이 붙어서 문제를 발견하지 못한 채로 문제를 찾는데 하루를 보내고 있습니다.actionListener를 통한 리디렉션이 작동하지 않습니다.
EJB에서 작업을 실행하고 결과에 따라 사용자를 다른 페이지로 리디렉션합니다. 함수가 에러없이 작동한다고 확신합니다. 결과를 디버그 모드로 따릅니다.
이미 다른 프로젝트에서 같은 방식으로 리디렉션을 수행했으나 여기서는 작동하지 않습니다. 물론 동일한 문제가있는 매우 기본적인 기능을 만들었습니다.
그냥 내가 테스트 EJB했던 기능 테스트 :
:<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:p="http://primefaces.org/ui">
<h:head>
<f:facet name="first">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
</f:facet>
<title>PrimeFaces Omega</title>
</h:head>
<h:body styleClass="login-body">
<p:commandButton value="test" actionListener="#{testController.redirection()}"/>
</h:body>
</html>
이은 web.xml의 설정입니다 :
@Named
@SessionScoped
public class testController implements Serializable{
public String redirection(){
return "login.xhtml";
}
}
와 나는 fonction를 사용하려고 어디
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<!-- JSF mapping -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map these files with JSF -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>omega</param-value>
</context-param>
<context-param>
<param-name>primefaces.FONT_AWESOME</param-name>
<param-value>true</param-value>
</context-param>
<mime-mapping>
<extension>ttf</extension>
<mime-type>application/font-sfnt</mime-type>
</mime-mapping>
<mime-mapping>
<extension>woff</extension>
<mime-type>application/font-woff</mime-type>
</mime-mapping>
<mime-mapping>
<extension>woff2</extension>
<mime-type>application/font-woff2</mime-type>
</mime-mapping>
<mime-mapping>
<extension>eot</extension>
<mime-type>application/vnd.ms-fontobject</mime-type>
</mime-mapping>
<mime-mapping>
<extension>eot?#iefix</extension>
<mime-type>application/vnd.ms-fontobject</mime-type>
</mime-mapping>
<mime-mapping>
<extension>svg</extension>
<mime-type>image/svg+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>svg#exosemibold</extension>
<mime-type>image/svg+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>svg#exobolditalic</extension>
<mime-type>image/svg+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>svg#exomedium</extension>
<mime-type>image/svg+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>svg#exoregular</extension>
<mime-type>image/svg+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>svg#fontawesomeregular</extension>
<mime-type>image/svg+xml</mime-type>
</mime-mapping>
</web-app>
로그 파일을보고 내 기능이 오류없이 작동하지만 인덱스 페이지로 리다이렉트해야하는 위치 이온은 페이지에 머문다.
누군가가 도움을 얻을 수 있습니까?
:
약간의 트릭을 할해야 코드를 변경? – Bonifacio
@Kukeltje 예, 학생 인 것처럼 내가하고있는 일입니다. 초보자를 환영하지 않습니까? Return "login.xhtml"은 리디렉션이 아닙니다. 나는 이것이 https://maxkatz.org/2009/09/18/learning-jsf2-navigation/에 따른 암시 적 리디렉션이라고 생각한다. 내가 한 짓을했다 – Ersch
@ 보니파시오 나는 똑같은 문제를 시도했지만 동일한 문제를 시도했다. – Ersch