Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 f:viewParam不';使用新的xmlns.jcp.org命名空间时,不传递必需的参数_Jsf 2_Xml Namespaces_Mojarra_Jsf 2.2_Viewparams - Fatal编程技术网

Jsf 2 f:viewParam不';使用新的xmlns.jcp.org命名空间时,不传递必需的参数

Jsf 2 f:viewParam不';使用新的xmlns.jcp.org命名空间时,不传递必需的参数,jsf-2,xml-namespaces,mojarra,jsf-2.2,viewparams,Jsf 2,Xml Namespaces,Mojarra,Jsf 2.2,Viewparams,我正在尝试将Glassfish 4.0与JavaEE7XML名称空间结合使用,以测试下面的示例 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:f="http://xmlns.jcp.org/jsf/core"> <h:head&

我正在尝试将Glassfish 4.0与JavaEE7XML名称空间结合使用,以测试下面的示例

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>Title</title>
    </h:head>
    <h:body>
        <h:form>
             <ul>
                 <ui:repeat value="#{appLoad.movieList}" var="movie">
                    <li>
                        <h:link value="#{movie.title}" outcome="movie" includeViewParams="true">
                            <f:param name="id" value="#{movie.id}"/>
                        </h:link>
                    </li>
                </ui:repeat>
            </ul>
        </h:form>
    </h:body>
</html>
{appLoad}
支持bean是

@ManagedBean
@RequestScoped
public class AppLoad {

    @EJB
    private MovieFacade movieFacade;
    private Movie movie = new Movie();
    private List<Movie> movieList;
    private int movieId;

    @PostConstruct
    public void movieDetail(){
        movieList = movieFacade.findAll();
        movie = movieFacade.find(movieId);
        System.out.println(movieId);
    }

    // Getters+setters.        
}

我猜我有点不对劲。这个问题是如何产生的,我应该如何使用新的XML名称空间?

新的
xmlns.jcp.org
XML名称空间的处理方式在第一个Mojarra版本2.2.0和2.2.1中被打破。它已在中修复(注意:链接中的ticket描述了不同的问题症状,但在封面下,它本质上是相同的原因)。建议升级到Mojarra 2.2.2。GlassFish 4.0捆绑了Mojarra 2.2.0。你可以从我这里得到这个罐子。您只需将GlassFish的
/modules
文件夹中的
javax.faces.jar
文件替换为新版本

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core">
顺便说一句,这种麻烦在第一次大型GlassFish发布时并不罕见(所有人都必须按时准备好)。我建议等到GlassFish 4.0.1或4.1发布后再使用JavaEE7,以避免将来出现意外。注意,其他供应商,如ApacheTomcat和JBossAS,会花时间发布一个稳定的JavaEE7容器;他们目前还没有生产就绪的版本

另见:

    • @Bulusc。感谢您的澄清。按照回答中的说明升级到Mojarra 2.2.2后,您的问题解决了吗?很抱歉,时间延误了。升级到Mojarra 2.2.2有效。谢谢你的时间和你所做的更正。我无法提高你的回答,因为我的声誉还不到15岁。再次感谢你,不客气。当答案有助于理解和解决具体问题时,不要忘记标记为已接受。另见
      <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:f="http://java.sun.com/jsf/core">