Java 如何在JSTL中为不同的地区调用不同的方法
在JSP页面中,我得到了一个bean,即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中。添加一
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必须以某种方式知道当前页面区域设置。