首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF2.0-用于移动和PC浏览器的两个接口

问JSF2.0-用于移动和PC浏览器的两个接口
EN

Stack Overflow用户
提问于 2010-08-19 09:30:41
回答 2查看 533关注 0票数 1

我正在开发一个应用程序,它需要两个接口-一个用于移动电话浏览器,另一个用于普通的PC浏览器。第二个界面需要提供更多的信息和更多的功能。当然,它们都在同一个项目中,使用相同的bean等等,只是表示层发生了变化。就目前而言,我只有手机的接口。当我选择地址://ip-地址:8080/App/时,它是可访问的,但当我尝试直接访问具有该接口的页面://ip-地址:8080/App/page.jsp时,它是不可访问的。我得到了以下错误:

org.apache.jasper.JasperException:在第30行处理JSP页面/page.jsp时发生了异常

javax.faces.context.FacesContext.getCurrentInstance();上下文= javax.faces.context.FacesContext 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)

根本原因

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( javax.servlet.http.HttpServlet.service(HttpServlet.java:717) ) .java:260)

当然,我的web.xml中有设置欢迎页面的信息。

代码语言:javascript
复制
<welcome-file-list>
    <welcome-file>faces/page.jsp</welcome-file>
</welcome-file-list>

如果我要从web.xml中删除这个部分,我是否能够到达该页面,或者问题是否与其他问题有关?最后,我想通过提供这样的链接来达到不同的界面:

//ip-地址:8080/App/mobile_page.jsp//ip-地址:8080/App/browser_page.jsp

谢谢你的意见。向你问好,塞斯。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-19 11:42:38

这个异常说明FacesContext#getCurrentInstance()正在返回null。这意味着没有创建FacesContext。对此负责的是FacesServlet。这反过来意味着根本没有调用FacesServlet。

要调用FacesServlet,您需要确保请求URL与web.xml中定义的FacesServlet的url-pattern匹配。

您似乎已经将FacesServlet映射到了/faces/*上。因此,您需要通过http://ip-address:8080/App/faces/page.jsp而不是http://ip-address:8080/App/page.jsp打开页面。

票数 2
EN

Stack Overflow用户

发布于 2010-08-19 09:57:06

如果使用JSF,不应该直接转到JSP页面,而是通过处理程序(faces/*或*.jsf)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3520408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档