2014-01-06 51 views
0

我正在将应用程序迁移到JSF 1.2到JSF 2.0,我面临的问题是当我在jsf 2.0中打开一个新的弹出窗口时,当我打开一个窗口jsf 2时为page1.jsf创建一个新视图,查看page1.xhtml.it为同一页创建两个视图,唯一的区别是后缀。 当它创建第二个视图时,我所有的查询参数都丢失了,导致一个空白的弹出窗口。JSF 2.0 VIew处理程序

servlet映射为web.xml文件是:

<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
+1

我建议放弃'* .jsf'模式,并改为使用'* .xhtml'来代替。 –

+0

我改变了它,但是当我在浏览器中使用弹出脚本打开一个新窗口时,h:命令按钮被点击身体负载,但它不执行我在我的按钮中定义的动作。 – user2470719

回答

0

更改web.xml文件

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
      id="WebApp_ID" version="2.5"> 


     <servlet> 
      <servlet-name>facesServlet</servlet-name> 
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
      <load-on-startup>1</load-on-startup> 
     </servlet> 

     <servlet-mapping> 
      <servlet-name>facesServlet</servlet-name> 
      <url-pattern>/faces/*</url-pattern> 
     </servlet-mapping> 
     <servlet-mapping> 

      <servlet-name>facesServlet</servlet-name> 
      <url-pattern>*.jsf</url-pattern> 
     </servlet-mapping> 

     <servlet-mapping> 
      <servlet-name>facesServlet</servlet-name> 
      <url-pattern>*.faces</url-pattern> 
     </servlet-mapping> 

     <servlet-mapping> 
      <servlet-name>facesServlet</servlet-name> 
     <url-pattern>*.xhtml</url-pattern> 
     </servlet-mapping> 

JSF2.0的详细迁移请点击此链接....

Migrating from JSF 1.2 to JSF 2.0