首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JSP / Servlet Java EE应用程序中引入JSF 1.2

在JSP / Servlet Java EE应用程序中引入JSF 1.2
EN

Stack Overflow用户
提问于 2011-12-15 14:15:12
回答 2查看 1.7K关注 0票数 0

我的环境是RAD 8,是带有很多JSP和Servlets的7.0.x。这个应用程序还使用JAX-RPC和JAX-WS,我想介绍一下JSF,并开始迁移一些更简单的JSF。

我有一个很大的问题,那就是我不能直接迁移到JSF2.0,因为我的目标是7.x,而我发现它不支持JSF2.0。我和其他商业团体分享了WAS 7.x。所以我现在不得不使用JSF 1.2。

在RAD 8中,我尝试了以下内容:

在testJSF.jsp文件中,我使用c:redirect指向/faces/test1.jsp。我还尝试了jsp:forward to /faces/test1.jsp。Servlet映射有/ /test1.jsp /*的url模式条目,这次的*.jsp是7,给我找不到...

然后我尝试从testJSF.jsp文件中使用c:redirect到/faces/test1.jsf,我还尝试了jsp:forward到/faces/test1.jsf。这一次我也改变了,Servlet映射到/faces/*和*.jsf的url模式条目,这次是7,进入了一个堆栈溢出的无限循环。

在这些环境下,servlet映射的url-pattern应该是什么?我应该如何引用新的JSF1.2页面?

EN

回答 2

Stack Overflow用户

发布于 2011-12-15 17:59:17

您应该可以使用JSF 2.0,因为Websphere 7.0实现了Servlet 2.5规范(据我所知)。

/faces/*或*.jsf映射应该没问题,可能在其他地方有配置问题...您需要提供更多详细信息。

为什么需要.jsp来测试JSF页面?如果直接从浏览器打开页面,会发生什么情况?

票数 0
EN

Stack Overflow用户

发布于 2011-12-15 21:52:10

faces Servlet映射具有针对/

/和.jsp的url模式条目

不应为FacesServlet指定*.jsp映射。此模式是为servlet容器的内置JspServlet保留的。通过这种方式,FacesServlet永远无法获得正确的JSP文件来显示视图。

带有/faces/和.jsf的url模式条目的

Servlet映射(这次是7)陷入了堆栈溢出的死循环。

您不应该给实际视图文件一个.jsf扩展名,而应该给它一个.jsp扩展名。

正确的设置如下:

  • FacesServlet映射到单独的*.jsf上。

facesServlet javax.faces.webapp.FacesServlet facesServlet *.jsf

您也可以改用/faces/*,或者添加它,但是这样做比较丑陋,并且不允许轻松迁移到JSF2.0。

  • 视图文件应该有.jsp扩展名。

viewid.jsp

<%@taglib uri="http://java.sun.com/jsf/core“prefix="f”%> <%@taglib uri="http://java.sun.com/jsf/html“prefix="h”%> JSF1.2测试页

  • 不要使用<c:redirect><jsp:forward>,这没有任何意义。直接通过URL调用页面就可以了:

http://localhost:8080/contextname/viewid.jsf

注意网址中的.jsf扩展名。这将调用FacesServlet。然后,它将找到viewid.jsp文件并显示它。

另请参阅:

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

https://stackoverflow.com/questions/8515890

复制
相关文章

相似问题

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