5

Java や Spring にはプロパティの概念がありますか? ドメイン モデルがたくさんあり、それぞれにいくつかのプロパティがあります。例:

public class Person {
    private String name;
    private Date dateOfBirth;
    private float height;
    private float weight;
    // getters and setters not shown
}

人物を表示する場合、プロパティ名は JSP でハードコーディングされます。

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 用に実装されたこのようなものが既にあるかどうかです。

4

6 に答える 6

2

JSP と JSTL を使用してこれを行うには、数値、日付などのローカライズとフォーマットをサポートする「fmt」タグ ライブラリを使用できます。

投稿した例では、コードは次のようになります。

<%@ 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>
于 2009-01-28T15:35:16.487 に答える
1

私があなたを正しく理解しているなら、あなたはこれらのプロパティのいくつかのフォーマットと説明を外部ファイルに入れられるようにしたいと思うでしょう。Springの(ここにあるjavadocMessageSourceへのリンク)を見てみることをお勧めします。これは、いくらかラップアラウンドしており、JDKのクラスに類似しています。ResourceBundle

'sを使用MessageSourceすると、形式とテキストを外部ファイルに配置できます(また、言語ごとに異なるプロパティファイルを使用できます)が、引数として渡すプロパティをJSPに含める必要があると思います。例:

<spring:message code="user.dob" arguments="${user.dateOfBirth}"/>

messages.propertiesファイルに含まれる場所:

user.dob = Your date of birth is {0}

内でフォーマットを指定する方法が完全にはわかりませんmessages.propertiesが、それが可能であることは知っています。

于 2009-01-28T15:01:33.233 に答える
0

式の評価のサポートを探していますか、それともBeanのプロパティを出力する方法を探していますか?

Springには両方があります。前者の場合はSpringのドキュメントを確認してください。SpringExpressionEvaluator 後者の場合はドキュメントを確認してください:SpringMVC

Java言語自体は、プロパティにアクセスするための言語を指定せず、必要なレベルでプロパティの概念をサポートしません。ただし、Swingのようなものはプロパティをサポートし、javaは関連するものもサポートします。java.beansパッケージを確認してください

于 2009-01-28T15:03:09.750 に答える
0

Some of the info you want to provide fits nicely in a BeanInfo object, originally meant to support JavaBeans stuff -- I have no idea if it still is being used and if it would be usable in the way you want.

Additionaly the spring:message tag provides support for i18n of static text, but I don't think it will tie in with your beans easily.

于 2009-01-28T14:44:00.927 に答える