在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来处理这个问题?
答案 0 :(得分:0)
把它放进豆子里。添加一个方法getDescription(),它使用当前的Locale调用现有方法。
答案 1 :(得分:0)
您是否尝试过使用#{school.getDescription(locale)}
?
答案 2 :(得分:0)
如果你是using JSP 2.2,那么你可以选择${school.getDescription(locale)}
或@Med建议,deferred syntax。
如果您的环境不提供JSP 2.2,那么,如果您至少拥有JSP 2.0,则可以将方法调用包装在通用function中,该方法调用将获取bean,方法名称以及参数列表和反思地称之为方法。然后,您可以执行以下操作:${f:invoke(bean, 'getDescription', locale)}
。
如果您使用的是JSP 1.2,那么您可以在JSP 2.0中获得与该函数类似的行为,但是使用标记(在JSP 2.0中添加了函数)。