重用的组成变量之外 - 传递变量起来JSF?

我使用JSF 1.2,并已得到了该得到的我的项目好几个地方重复一些奇怪的JavaScript。

我不想重复自己..但我没有发现任何方式做类似这样:

<ui:composition> <c:set var="confirmBlockJS" value="if (confirm('#{tk:encodeJS(confirmMessage)}')) {#{confirmed}} else{ #{notConfirmed}}"/> </ui:composition>

现在我想用一组变量,但OBV这将失败。

<ui:include src="/blocks/tech/confirmBlock.xhtml"> <ui:param name="confirmMessage" value="#{appTexts['action.logout.title']}"/> <ui:param name="confirmed" value="return false;"/> <ui:param name="notConfirmed" value=" #{doJS}"/> </ui:include> <h:outputLink id="logout" value="#" rendered="#{renderLogout}" onclick='#{confirmBlockJS};' styleClass="_allowEnterKey"> <h:outputText value="#{appTexts['action.logout']}"></h:outputText> </h:outputLink>

confirmBlockJS是在这一点上,这实际上是在我眼里是件好事显然是空的。 但是,有没有办法通过该变量吗? 我试着用户界面:参数没有运气。

解决方案使用 ui:decorate时要使用访问变量集c:set它使用的页面之外的ui:decorate 。 它仍然是可见的。 在UI的情况:包括C:集将不可见之外,但用户界面:参数应该通过它(如使用的用户界面:参数,而不是c:setui:include作文)

--------------解决方案-------------

如果你不想它内联作为一个属性值,那么<ui:decorate>将是您的解决方案。

EL函数最接近你可以得到什么,为这个特殊的功能要求的工作:

<h:outputLink id="logout" value="#" rendered="#{renderLogout}"
onclick="#{js:confirmBlock(appTexts['action.logout.title'], 'return false;', doJS)}"
styleClass="_allowEnterKey">
<h:outputText value="#{appTexts['action.logout']}"></h:outputText>
</h:outputLink>

要么:

<ui:param name="confirmBlock" value="#{js:confirmBlock(appTexts['action.logout.title'], 'return false;', doJS)}" />
<h:outputLink id="logout" value="#" rendered="#{renderLogout}"
onclick="#{confirmBlock}"
styleClass="_allowEnterKey">
<h:outputText value="#{appTexts['action.logout']}"></h:outputText>
</h:outputLink>

请注意,在Java / JSF / EL生成JS代码这种方式有点气味。 难道真的无法让你把一个简单的JS函数.js文件,并带参数的参数呢?

分类:JSF 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.485 (s). 10 q(s)