Java 如何在JSTL中为不同的地区调用不同的方法

Java 如何在JSTL中为不同的地区调用不同的方法,java,jsp,localization,jstl,el,Java,Jsp,Localization,Jstl,El,在JSP页面中,我得到了一个bean,即School,它有一个名为getDescription(stringlocale)的方法。如果我通过en_-US它将返回英文文本,而对于fr_-CA它将返回法文文本 对于静态内容,我可以使用类似于:的fmt标记,但是有没有一种方法可以为bean传递参数,这样我就可以使用类似于:${school.description}或${school.description(locale)} 使用标准EL和JSTL有什么好方法来处理这个问题吗?将其放入bean中。添加一

在JSP页面中,我得到了一个bean,即
School
,它有一个名为
getDescription(stringlocale)
的方法。如果我通过
en_-US
它将返回英文文本,而对于
fr_-CA
它将返回法文文本

对于静态内容,我可以使用类似于:
的fmt标记,但是有没有一种方法可以为bean传递参数,这样我就可以使用类似于:
${school.description}
${school.description(locale)}


使用标准EL和JSTL有什么好方法来处理这个问题吗?

将其放入bean中。添加一个使用当前区域设置调用现有方法的方法getDescription()。

您是否尝试过使用
{school.getDescription(Locale)}

  • 另见:
如果你是,那么你可以选择
${school.getDescription(locale)}
或者按照@Med的建议,选择一个

如果您的环境不提供jsp2.2,那么如果您至少有jsp2.0,那么您可以在泛型中包装一个方法调用,该泛型接受您的bean、要调用的方法名称和参数列表,并反射地调用该方法。然后执行如下操作:
${f:invoke(bean,'getDescription',locale)}


如果您使用的是JSP 1.2,那么您可以获得与JSP 2.0中的函数类似的行为,但可以使用标记(函数是在JSP 2.0中添加的)。

唯一的问题是bean必须以某种方式知道当前页面区域设置。