我希望通过jsp以HTML / XML显示属性。像:
${MyClass.properties.propertieOne}
我创建了扩展的属性类MProperties,但是如何在我的属性中为该类创建getter?
BR Kolesar
答案 0 :(得分:0)
您可以在store(Writer writer, String comments)
课程中使用Properties
方法。将您的属性写入StringWriter并使用其中的String在HTML上打印。
答案 1 :(得分:0)
${yourObject.properties.propertyOne}
有效。 Properties extends Hashtable implement Map
和${map.key}
为您提供该密钥下的值。但是你不应该使用JSP中的setter,因此这仅用于显示目的。
但您无法直接从静态字段访问它。您必须将其添加到某个上下文 - 请求或应用程序。例如,在ServletContextListener.contextInitialized(..)
:
servletContext.addAttribute("yourProperties", MyClass.properties);
(当然,你必须在web.xml中映射<listener>
)
答案 2 :(得分:0)
如果您延长Properties
,您可能确切地知道您想要拥有哪些字段。在这种情况下,最好只创建一个包含这些字段的POJO(简单对象)和适当的getter(以及你想要的setter和/或构造函数)。如果你以某种方式需要Properties
的动态 - (?),请忽略这个答案。
答案 3 :(得分:0)
您可以使用
等构造函数创建类来处理属性private Properties props = null;
private MyProperties() throws IOException {
FileInputStream propFile = new FileInputStream(FULL_PATH);
props = new Properties(System.getProperties());
props.load(propFile);
RegistryManager rm = RegistryManager.singleton();
rm.addRegistry("MyProperty", this);
}
public static MyProperties Singelton() {
synchronized (MyProperties.class) {
if (theInstance == null) {
try {
theInstance = new MyProperties();
} catch (IOException e) {
throw new MissingResourceException("Unable to load property file \"" + FULL_PATH + "\"", MyProperties.class.getName(),
PROPERTIES_FILENAME);
}
}
}
return theInstance;
}
并通过一种方法获取属性,如
public static String getProperty(String propertyName) {
String value = Singelton().props.getProperty(propertyName);
if (value == null) {
LOGGER.warning("propertyName (" + propertyName + ") not found in property file (" + FULL_PATH + ")");
}
return value;
}
最后在代码中你只能打电话
String desiredProperty = MyProperties.getProperty("propertyKey");
缺少一些代码,有些代码可能不需要但你应该知道这是否是你想做的......