实际上很容易做到。
放入您的应用程序初始化方法:
getResourceSettings().getStringResourceLoaders().add(0, new NoResourceLoader());
实现 NoResourceLoader:
public class NoResourceLoader implements IStringResourceLoader {
@Override
public String loadStringResource(Class<?> clazz, String key, Locale locale, String style, String variation) {
if ("noProperties".equals(style)) {
return key;
}
return null;
}
@Override
public String loadStringResource(Component component, String key, Locale locale, String style, String variation) {
if ("noProperties".equals(style)) {
return key;
}
return null;
}
}
如果样式设置为 noProperties,则此资源加载器仅返回键。当它返回 null 时,本地化程序将为任何其他调用尝试下一个资源加载器。
为了将样式设置为“noProperties”,我建议在页面的构造函数中添加一个参数检查,以便在您使用参数调用应用程序时设置会话对象的样式。
public BasePage(PageParameters pp) {
String style = pp.get("st").toOptionalString();
if (style != null) {
getSession().setStyle("noProperties");
}
使用此参数集调用您的第一个 url 就足够了,然后您应该使用属性键而不是 html 中的值遍历整个会话。当应用程序在生产中运行时,我也会禁用此检查。