2010-08-19 2 views
1

휴대 전화 브라우저 용 및 일반 PC 브라우저 용 인터페이스 두 개가 필요한 응용 프로그램을 개발하고 있습니다. 두 번째 인터페이스는 더 많은 정보를 제공하고 몇 가지 기능을 추가해야합니다. 물론, 둘 다 같은 프로젝트에 있고 같은 콩을 사용합니다. 이것은 변화하는 프리젠 테이션 레이어 일뿐입니다. 당분간 휴대 전화 용 인터페이스 만 있습니다. 이 인터페이스를 사용하여 페이지로 바로 이동하려고 할 때 주소 : // ip-address : 8080/App /를 선택할 때 액세스 할 수 있습니다. //ip-address:8080/App/page.jsp.JSF 2.0 - 모바일 및 PC 브라우저 용 인터페이스 2 개

물론

org.apache.jasper.JasperException: An exception occurred processing JSP page /page.jsp at line 30

javax.faces.context.FacesContext context = javax.faces.context.FacesContext.getCurrentInstance(); 30:
context.getViewRoot().setLocale(newLocale); 31: %> 32: 33:

Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.NullPointerException org.apache.jsp.page_jsp._jspService(page_jsp.java:91) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

난은 web.xml에서이 부분을 제거한다면 시작 페이지가

<welcome-file-list> 
    <welcome-file>faces/page.jsp</welcome-file> 
</welcome-file-list> 

로 설정되어 내 web.xml에 정보가있다 : 나는 다음과 같은 오류가 발생했습니다 그 페이지에 다다를 수 있습니까? 아니면 다른 것과 관련된 문제입니까?

//ip-address:8080/App/mobile_page.jsp //ip-address:8080/App/browser_page.jsp

: 결국이 같은 링크를 제공하여 서로 다른 인터페이스에 도달하고 싶습니다

입력 해 주셔서 감사합니다. 최고 감사합니다, sass. 당신이 JSF를 사용하는 경우

답변

2

이 예외는 FacesContext#getCurrentInstance()null를 반환하는 것을 말하고있다 (/ * 또는 * .jsf면). 즉, FacesContext이 생성되지 않았습니다. 그 책임자는 FacesServlet입니다. 이는 다시 FacesServlet이 전혀 호출되지 않았 음을 의미합니다.

는 호출 할 FacesServlet 당신이 web.xml에 definied으로 요청 URL이 FacesServleturl-pattern 일치하는지 확인해야합니다.

FacesServlet/faces/*에 매핑 한 것 같습니다. 따라서 http://ip-address:8080/App/faces/page.jsp 페이지를 열어야하므로 http://ip-address:8080/App/page.jsp이 아닙니다.

+0

감사합니다, BalusC - 매우 도움이되는 답변 :) – sass

+0

당신을 진심으로 환영합니다. – BalusC

1

당신은 JSP 페이지로 직접 이동하지 않아야하지만 핸들러를 통해

+0

나는 그 질문에 대한 대답을 실제로 볼 수 없습니다. 이 무슨 소리를하는거야 : <서블릿 매핑> <서블릿 이름> 서블릿 얼굴 /면/* 하지만 문제는 내가 더 이상 그 페이지에 직접 갈 수 없다는 것입니다. – sass