javascript中的JSF资源包params?

我有一个命令按钮,可以生成一个确认弹出窗口。确认文本来自消息包。是否可以将参数传递给确认? 这就是我想要的:
<h:commandButton value="#{tkmsg.addAccount}" action="#{ebfAccountControllerBean.specifyEbfAddAccount}" 
                        onclick="return confirm('#{tkmsg.confirmAddAccount}');">
            <f:param value="this account"/>
            <f:param value="this email"/>
</h:commandButton>
但它不起作用。我得到了
Are you sure you want to add account {0} with email {1}?
参数只适用于OutputText或OutputFormat吗?有没有其他方法可以做到这一点?我的下一步是将“此帐户”替换为表单中的数据。     
已邀请:
你所做的确实不会那样。 JSF无法将
f:param
标记与EL表达式相关联。试想一下,即使是人类也无法猜到这一点;) 您可以将您的消息预先呈现为可通过EL访问的内容,例如,战斧缓冲:
<t:buffer into="#{buffer['confirm']}">
   <h:outputFormat value="#{tkmsg.confirmAddAccount}">
      <f:param value="this account"/>
      <f:param value="this email"/>
   </h:outputFormat>
</t:buffer>
#{buffer}
只是一个声明为具有请求范围的托管bean的hasmap。在此之后,您可以在javascript语句中引用
#{buffer['confirm']}
。     
阿尔詹举了一个很好的例子。另一种方法是自己编写JS函数。这是一个基本的启动示例,它使用新的
format()
功能扩展了JS
String
原型。
<script>
    String.prototype.format = function() {
        var args = arguments;

        return this.replace(/{(d+)}/g, function() {
            return args[arguments[1]];
        });
    }
</script>
使用方法如下:
onclick="return confirm('#{tkmsg.confirmAddAccount}'.format('this account', 'this email'));"
    

要回复问题请先登录注册