0

Java Bean に見栄えの悪いプロパティがいくつかあります。たとえば、max_speed。プロパティが多すぎて、きれいに見えるように手動で HTML ファイルに書き出すことはできません。

現在の出力: max_speed、min_speed

必要な出力: 最大速度、最小速度

質問: 出力をきれいに出力するために、「max_speed」、「min_speed」、およびその他の 20 のプロパティを「Max Speed」、「Min Speed」などにマップするにはどうすればよいですか? それらを Web ページに追加するたびに手動で作成しなくても、これは実行できますか?

4

4 に答える 4

0

最終的に、(単語として許可されている場合) プロパティを整形し、特別な場合に if else 文を追加するために、このメソッドを使用しました。Java 1.6 は文字列の切り替えをサポートしていないため、大文字と小文字の切り替えを使用できませんでした。commons のWordUtils パッケージに注目してください。注意: これは、すべてのプロパティ名がアンダースコアで区切られている私の特別なケースでのみ機能することに注意してください。

public String niceDisplayName(String property) {
    String[] tokens = property.split("_");
    StringBuilder sb = new StringBuilder();
    for (int i=0;i<tokens.length;i++) {
        tokens[i] = WordUtils.capitalize(tokens[i]);
        sb.append(tokens[i]);
        if((i+1) < tokens.length) {
            sb.append(" ");
        }
    }
    return sb.toString();
}
于 2013-08-02T07:36:49.563 に答える
0

以下のこれらの機能をチェックしてください。

表示名を設定するには

    public void setDisplayName(String givenProperty){

    String displayName = null;

    // Perform Some Operation to generate you display Name
    // String [] tokens = givenProperty.split("_");
    // displayName = tokens[0] + " " + tokens[1];

    objectOfHashMap.put(givenProperty,displayName);

 }

DisplayName を取得するには:

   public String getDisplayName(HashMap<String, String> givenHashMap, String givenProperty){

       String outputString = null;

       for(Map.Entry<String, String> pairs1 : givenHashMap.entrySet()){
           if(givenProperty.equals((String)pairs1.getKey())){
                outputString = pairs1.getValue();
            }
        }

       return outputString;
    }

ご不明な点がございましたら、お知らせください。

于 2013-08-01T13:38:49.450 に答える
0

フィールド名 (プロパティ名) を期待し、適切にフォーマットされた出力を返すメソッドを作成するとどうなるでしょうか?

例えば:

public String formatProperty(String propertyName, String userFriendlyLabel) {
    Field someField = this.getClass().getField(propertyName);

    Object value = null;
    if(someField != null) {
       value = someField.get(this);
    }

    return userFriendlyLabel + ": " + value;

}
于 2013-08-01T13:23:27.870 に答える