首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java web应用程序属性

Java web应用程序属性
EN

Stack Overflow用户
提问于 2009-01-28 14:31:30
回答 6查看 2.6K关注 0票数 5

Java和/或Spring有属性的概念吗?我有一堆域模型,每个域模型都有几个属性。示例:

代码语言:javascript
运行
复制
public class Person {
    private String name;
    private Date dateOfBirth;
    private float height;
    private float weight;
    // getters and setters not shown
}

在显示person时,属性名称是在JSP中硬编码的。

代码语言:javascript
运行
复制
Name: ${person.name}<br>
Date of birth: ${person.dateOfBirth}<br>
Height: ${person.height}<br>
Weight: ${person.weight}<br>

此外,可能有几个不同的页面来显示一个人。请注意,出生日期是一个java.util.Date,因此JSP或控制器将使用java.text.SimpleDateFormat对其进行格式化。身高和体重都是数字,它们可能有自己的java.util.Format用于格式化。

我要找的是一种属性查找机制。每个属性(名称、出生日期、身高等)将具有显示名称、格式和描述(用于帮助或工具提示)。属性的属性将在某个配置文件中定义。当显示属性时,将通过属性机制查找显示名称和格式。这也将解决本地化问题。

我的问题是,是否已经为Java实现了类似的东西。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-01-28 15:01:33

如果我理解正确的话,您希望能够将其中一些属性的格式和描述放在一个外部文件中。您可能想看看Spring的MessageSource (链接到javadoc here),它有些类似于JDK中的ResourceBundle类。

使用MessageSource的将允许您将格式和任何文本放在外部文件中(并且对于不同的语言具有不同的属性文件),但我相信您仍然需要在您的JSP中包含哪些属性作为参数传递,例如:

代码语言:javascript
运行
复制
<spring:message code="user.dob" arguments="${user.dateOfBirth}"/>

其中,您的messages.properties文件包含:

代码语言:javascript
运行
复制
user.dob = Your date of birth is {0}

我不完全确定如何在messages.properties中指定格式,但我知道这是可能的。

票数 1
EN

Stack Overflow用户

发布于 2009-01-28 15:35:16

要使用JSP和JSTL实现这一点,您可以使用"fmt“标记库,它支持数字、日期等的本地化和格式化。

在您发布的示例中,代码如下所示:

代码语言:javascript
运行
复制
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%-- ..assuming bundle and locale are already set... --%>
<fmt:message key="NAME" bundle="${myBundle}"/>: ${person.name}<br>
<fmt:message key="DOB" bundle="${myBundle}"/>: <fmt:formatDate type="date" value="${person.dateOfBirth}"/><br>
<fmt:message key="HEIGHT" bundle="${myBundle}"/>: <fmt:formatNumber pattern="##.##" value="${person.height}"/><br>
<fmt:message key="WEIGHT" bundle="${myBundle}"/>: <fmt:formatNumber pattern="##.##" value="${person.weight}"/><br>
票数 2
EN

Stack Overflow用户

发布于 2009-01-28 14:44:01

您想要提供的一些信息非常适合BeanInfo对象,该对象最初的目的是支持JavaBeans内容--我不知道它是否仍在使用,以及它是否会以您想要的方式使用。

另外,spring:message标签提供了对静态文本i18n的支持,但我认为它不会轻易与您的bean绑定在一起。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/487826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档