【问题标题】:call javascript from managed bean [duplicate]从托管bean调用javascript [重复]
【发布时间】:2013-10-19 07:59:16
【问题描述】:

我想从 managedbean 类中清除 JSF 页面中的表单隐藏值。所以我曾经调用一个方法,因为我使用此代码调用 javascript,但它抛出 java.lang.NullPointerException 下面是代码。

FacesContext facesContext = FacesContext.getCurrentInstance();
    ExtendedRenderKitService service = 
              Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
            service.addScript(facesContext, "alert('foo');");

错误是在调用警报的行中引发的。请有人帮助我。即使我试图在 JSF 页面中调用一个函数来重置值...它给了我同样的错误。

【问题讨论】:

  • NPE在哪一行被抛出?
  • @kocko 在最后一行 service.addScript(facesContext, "alert('foo');");..当我调用 javascript 时。
  • 信息不足。我假设您正在使用 ADF / Trinidad。您能否提供有关如何在您的页面中设置表单字段的详细信息?您可能可以查看一个简单的解决方案,例如设置部分触发器或从托管 bean 代码本身添加组件。
  • @user2644886........我猜你必须将它转换为 ExtendedRenderKitService 类,如本例所示。svn.apache.org/repos/asf/myfaces/trinidad/trunk/…

标签: java javascript jsf-2


【解决方案1】:

如果你使用primefaces,你可以使用primefaces的Request Context组件。

RequestContext

如果你不想要,你可以看看这个

without primefaces

【讨论】:

  • JS 没有执行
【解决方案2】:

你可以使用请求Context component的primefaces

【讨论】:

    【解决方案3】:
    RequestContext.getCurrentInstance().execute("jsMethod();");
    

    RequestContext.getCurrentInstance().execute("$('#ID').hide();");

    RequestContext.getCurrentInstance().execute("PF('WIDGET').show();");
    

    您可以在执行方法中执行任何 javascript/jquery/primefaces 代码。

    【讨论】:

    • JS 没有执行
    猜你喜欢
    • 2012-03-26
    • 2016-06-06
    • 2012-06-19
    • 2013-01-24
    • 2011-11-23
    • 2017-06-14
    相关资源
    最近更新 更多