【问题标题】:Using a4j:support with jsf 1.2在 jsf 1.2 中使用 a4j:support
【发布时间】:2015-11-13 15:49:33
【问题描述】:

我需要对 h:selectonemenu 进行一些保存操作。当它的值改变时,它应该保存这个值,但没有页面刷新(所以没有提交)。

不幸的是,我必须使用 jsf 1.2。经过一些研究,我发现它可以用 a4j:support 完成,但是我不知道如何将它包含到我的项目中。我需要下载一些旧的richfaces 库吗? (据我所知,richfaces 4 不支持 jsp 语法)。或者是否存在其他方式来实现这个目标??

【问题讨论】:

    标签: jsf richfaces jsf-1.2 selectonemenu


    【解决方案1】:

    1.您可以使用 Richfaces 3.3.4.Final(下载 here)。

    This 是您应该在项目中包含、注册和使用库的方式。注意:

    带有 RichFaces 的 JSF 应用程序假定项目中存在以下 JAR:commons-beanutils-1.7.0.jar、commons-collections-3.2.jar、commons-digester-1.8.jar、commons-logging-1.0 .4.jar,jhighlight-1.0.jar。

    您的案例示例(来自developer guide):

    <h:form id="planetsForm">
    <h:outputLabel value="Select the planet:" for="planets" />
    <h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">
        <f:selectItems value="#{planetsMoons.planetsList}" />
        <a4j:support event="onchange" reRender="moons" />
    </h:selectOneMenu>
    <h:dataTable id="moons" value="#{planetsMoons.moonsList}" var="item">
        <h:column>
            <h:outputText value="#{item}"/>
        </h:column>
    </h:dataTable>
    

    2。其他解决方案示例:

    您可以将 jQuery.ajax() 与自定义 servlet 一起使用。

    JS:

    $.ajax({
            type: 'GET',
            url: '/app/customservlet.jsf?value=' + selectOneValue; //selected value
    });
    

    小服务程序:

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse res) {     
        String selectOneValue = req.getParameter("value");      
        //do something
    }
    

    【讨论】:

    • 抱歉回复晚了。我对第一个解决方案有疑问。我试图将richfaces 库添加到我的项目中,但没有成功。它在启动时抛出错误Caused by: java.lang.ClassNotFoundException: org.richfaces.webapp.taglib.UIComponentELTagBase from。但是这个类存在于我的 Richfaces 库中的战争中。我做错了什么?
    • 哦,我正在 JBoss 上运行它
    • 你是直接放libs还是通过maven声明? (全部:richfaces-api-3.3.4.Final + richfaces-impl-3.3.4.Final + richfaces-ui-3.3.4.Final)
    • 这个项目是用 ant 构建的。我使用常春藤来配置它。在构建输出 WAR 之后,所有这些库都在 WAR 内的 WEBINF/lib 目录中。
    • 好吧,我的错。我指定了我使用的错误版本的 jsf。我正在使用 jsf 1.1。我用 3.1.6.SR1 替换 3.3.4 版本,它工作正常。谢谢
    猜你喜欢
    • 2012-10-02
    • 2010-12-15
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2012-06-01
    • 2013-02-12
    相关资源
    最近更新 更多