0

在一个 JSP 页面中,我得到了一个 bean School,它有一个名为getDescription(String Locale). 如果我通过en_US它将返回英文文本,并且fr_CA它将返回法文文本。

我使用 fmt 标签没有问题,例如:<fmt:message key="school_list.title2"/>对于静态内容,但是有没有办法可以为 bean 传递参数,所以我可以使用类似:${school.description}${school.description(locale)}

有没有使用标准 EL 和 JSTL 处理这个问题的好方法?

4

3 回答 3

0

把它放进豆子里。添加一个 getDescription() 方法,该方法使用当前语言环境调用现有方法。

于 2013-01-04T21:23:49.637 回答
0

你试过用#{school.getDescription(locale)}吗?

于 2013-01-05T03:45:45.407 回答
0

如果您使用的是 JSP 2.2,那么您可以使用${school.getDescription(locale)}或按照@Med 的建议使用延迟语法

如果您的环境不提供 JSP 2.2,那么如果您至少有 JSP 2.0,那么您可以将方法调用包装在一个通用函数中,该函数采用您的 bean、要调用的方法名称和参数列表,并反射性地调用该方法。然后你做一些这样的事情:${f:invoke(bean, 'getDescription', locale)}.

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

于 2013-01-08T14:55:15.990 回答