小编djm*_*jmj的帖子

EL支持重载方法吗?

我升级了我的Java EE Web应用程序以使用更新的PrimeFaces版本,突然在PrimeFaces commandlink的action属性中调用重载的bean方法不再起作用.我试图使用JSF默认的commandlink来测试它,这个也没用.

方法签名如下:

public void updateA(B b);
public void updateA(A a);
Run Code Online (Sandbox Code Playgroud)

它总是试图将A转换为B.

更好奇的是,它在升级之前如何运作?

overloading el

29
推荐指数
1
解决办法
3425
查看次数

是否可以在action属性中使用EL条件运算符?

条件运算符适用于许多属性,如"已渲染","值"等.

但它不起作用?或者我做错了吗?

<h:commandLink action="#{true ? bean.methodTrue() : bean.methodFalse()}"/>
Run Code Online (Sandbox Code Playgroud)

错误:javax.el.E​​LException:不是有效的方法表达式

(我用primefaces ajax action属性实现了它)

jsf action el conditional-operator

25
推荐指数
1
解决办法
2万
查看次数

在render/update属性中获取模板中父命名容器的id

我有一个模板,在其定义中我使用了几个表单和按钮.

问题是定义(定义)xhtml文件不知道组件层次结构.

例如,我想在同一个定义文件中以不同的形式更新元素"table2".

模板插入:

<p:tabView id="nav"> <!-- nav -->
    <ui:insert name="content_nav">content navigation</ui:insert>
</p:tabView>
Run Code Online (Sandbox Code Playgroud)

定义我的层次结构"nav"的第一级

模板定义:

<ui:define name="content_nav">
    <h:form id="form1"> <!-- nav:form1 -->
        <h:dataTable id="table1"/> <!-- nav:form1:table1 -->
        <p:inputText value="#{bean.value}"/>
        <p:commandButton action="..." update="nav:form2:table2"/>
    </h:form>
    <h:form id="form2">
        <h:dataTable id="table2"/> <!-- nav:form2:table2 -->
        <!-- other elements -->
    </h:form>
</ui:define>
Run Code Online (Sandbox Code Playgroud)

在我的定义部分,我不想知道"导航"!

我怎样才能做到这一点?或者如何向上移动一个命名组件?或者将最高父完整ID保存在变量中?

有时我看到类似的东西:

update=":table2"
Run Code Online (Sandbox Code Playgroud)

但是我找不到任何关于这个的信息?,JavaEE 6文档只是提到@关键字.

el naming-containers primefaces jsf-2

17
推荐指数
1
解决办法
3万
查看次数

fs事件的jsf执行顺序

这些的执行顺序是什么?

这是一个关于可能的f:event事件名称的问题:JSF 2事件列表?

preRenderComponent
preRenderView
postAddToView
preValidate
postValidate
Run Code Online (Sandbox Code Playgroud)

我想检查用户是否保存在会话bean中,如果没有重定向到登录站点,这需要在view-param转换阶段之前发生,因为使用的转换器依赖于登录的用户.'preValidate'似乎是在转换后发生的,因此我需要更早的事件.

<f:event type="preRenderView" listener="#{beanA.checkLoggedIn()}"/>
<f:viewParam name="param" value="#{beanB.param}" converter="#{beanB.converter}" required="true"/>
Run Code Online (Sandbox Code Playgroud)

我也可以在'beanB'中加入'checkLoggedIn()',但是试图使用一个单独的请求范围的bean来进行检查,以便我可以轻松地重用它.

events jsf

17
推荐指数
1
解决办法
3万
查看次数

如何在过滤器中检索FacesContext

如何在过滤器中检索FacesContext?

我跟着就如何检索下面的文章FacesContextFilter:

http://ocpsoft.org/java/jsf-java/jsf-20-extension-development-accessing-facescontext-in-a-filter/

但问题是它无法使用Flash作用域.关注NPE:

java.lang.NullPointerException
at com.sun.faces.context.flash.ELFlash.loggingGetPhaseMapForWriting(ELFlash.java:751)
at com.sun.faces.context.flash.ELFlash.getPhaseMapForWriting(ELFlash.java:785)
at com.sun.faces.context.flash.ELFlash.put(ELFlash.java:392)
at com.sun.faces.context.flash.ELFlash.put(ELFlash.java:112)
Run Code Online (Sandbox Code Playgroud)

我想在我的过滤器中添加重定向并使用闪存范围来保存一些数据以及消息,这是无效的.

jsf facescontext servlet-filters flash-scope

12
推荐指数
1
解决办法
8147
查看次数

有条件地渲染ui:define

我如何有条件地渲染<ui:define>

模板中的数据取决于所需的数据<f:viewParam>.

但是如果提供了无效的视图参数,那么<ui:define>不应该渲染,因为应该使用模板的默认内容.

我尝试过使用<c:if>但不起作用.

jsf facelets templating conditional-rendering

11
推荐指数
1
解决办法
6193
查看次数

CUDA - 为什么基于warp的并行减少更慢?

我有关于基于warp的并行缩减的想法,因为warp的所有线程都是按照定义同步的.

因此,我们的想法是输入数据可以减少64倍(每个线程减少两个元素),而不需要任何同步.

与Mark Harris的原始实现相同,减少应用于块级别,数据应用于共享内存. http://gpgpu.org/static/sc2007/SC07_CUDA_5_Optimization_Harris.pdf

我创建了一个内核来测试他的版本和基于warp的版本.
内核本身完全相同地将BLOCK_SIZE元素存储在共享内存中,并将其结果输出到输出数组中的唯一块索引.

算法本身工作正常.测试完整的一个数组以测试"计数".

实现的功能体:

/**
 * Performs a parallel reduction with operator add 
 * on the given array and writes the result with the thread 0
 * to the given target value
 *
 * @param inValues T* Input float array, length must be a multiple of 2 and equal to blockDim.x
 * @param targetValue float 
 */
__device__ void reductionAddBlockThread_f(float* inValues,
    float &outTargetVar)
{
    // code of the below functions
}
Run Code Online (Sandbox Code Playgroud)

1.执行他的版本:

if (blockDim.x >= 1024 …
Run Code Online (Sandbox Code Playgroud)

cuda gpgpu reduction

10
推荐指数
1
解决办法
3017
查看次数

BigDecimal的java数学库,允许空值

是否有一个BigDecimal库,其中包含允许空值的BigDecimal基本操作?

出于数学目的,Null应被视为0.

我不想对可能的空值进行所有空值检查.

您永远不会在数据库,应用程序或视图中允许空值并初始化所有内容new BigDecimal(0)或对可空值的每次使用执行空值检查.

就像是:

public static BigDecimal add(final BigDecimal value, final BigDecimal augend)
{
    if (value == null)
        return augend;
    else if (augend == null)
        return value;
    else
        return value.add(augend);
}

public static BigDecimal multiply(final BigDecimal value, final BigDecimal multiplicand)
{
    if (value == null || multiplicand == null)
        return null;

    return value.multiply(multiplicand);
}
Run Code Online (Sandbox Code Playgroud)

java bigdecimal

10
推荐指数
3
解决办法
7万
查看次数

在ManagedBean中进行远程轮询,并通过push通知客户端视图

我有一个jsf视图,它显示了一个远程检索的表中的托管bean(viewscope)的一些数据.
目前,使用primefaces poll组件通过客户端视图轮询更新数据.

这还不够,因为要向客户端发送大量流量,现在Primefaces支持服务器推送我只想重新加载数据并在数据发生变化时将其推送到客户端视图.

这应该通过从Web层到应用层的轮询来实现,调用类似的方法hasChanged(...).如果数据已更改,则Web层会将通知推送到客户端以重新加载数据.

当前的客户投票

客户端>> web-tier >> app-tier

客户端通过ajax向web层询问数据,该数据再次向app-tier请求数据和更新视图

希望网络层轮询和推送

客户端<< web-tier >> app-tier

如果数据已更改并代表重新加载并通知(推送)客户端更新视图,则web-tier轮询应用层

处理办法:

在Web层中实现托管bean轮询的最佳方法是什么?

  1. 托管bean中的TimerTask
    使用计时器生成用于计划任务的JSF托管bean中的线程
  2. 带有Schedule注释的附加EJB
  3. 使用TimerService的附加EJB
  4. 其他?

编辑:

架构:(3层)

  • Server1:数据库
  • Server2:app-tier(带远程EJB + Hibernate的EAR)
  • Server3:web-tier(带有JSF 2.0 + Primefaces 3.4的WAR)
  • 客户端:浏览器

建筑

jsf timer java-ee

9
推荐指数
1
解决办法
2486
查看次数

Java单例类与JSF应用程序范围内的托管bean - 差异?

使用单例类和应用程序范围的托管bean来保存应用程序数据有区别吗?

我需要查找某些JNDI资源,例如远程bean接口,因此我自己写了一个单例来缓存我的引用,只允许单引用.(服务定位)

我在两个不同的浏览器中打开了我的网站,而且这个单例只被初始化了一次.所以我假设它的应用范围?

应用程序范围托管bean的任何其他好处,然后能够访问其在jsf中的属性?

jsf singleton managed-bean

8
推荐指数
1
解决办法
8597
查看次数