gpt4 book ai didi

java - 是否可以在 JSF 1.1/Facelets 中重载 EL 方法

转载 作者:行者123 更新时间:2023-11-29 08:18:44 25 4
gpt4 key购买 nike

是否可以使用 Facelets 作为 View 处理程序在 JSF 1.1 中重载 EL 方法?如果是,怎么办?

例如,我有这段代码定义我的 EL 方法(在命名空间 k 中定义):

public static String doStuff( String s ) {
return doStuff( null, s );
}

public static String doStuff( Map<String,String> m, String s ) {
...
return something;
}

当我尝试从我的 Facelets 页面调用 #{k:doStuff("hey!")} 时,出现此错误:

Function 'k:doStuff' specifies 2 params, but 1 was declared

最佳答案

事实证明,无论您如何声明该函数,它都会被放入 Map 中,并以其名称作为键。所以 - 没有函数重载。

但是,你可以在XML中定义函数的name不同,然后你就可以有重载的方法。这有点违反直觉。但随后您的函数将可以通过页面中的不同名称访问。

您可以通过为重载方法名称(您放入映射中)提供后缀来动态地实现相同的目的。无论哪种方式,这都不是一个很好的解决方案。

关于java - 是否可以在 JSF 1.1/Facelets 中重载 EL 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com