1

今のところ、区切られたテキストを(コンマを使用して)コピー/貼り付けする単純なテキストエリアがあります。各行はもちろん新しいログ (この場合は GPS ログ) を表します。

例えば:

1,15:26:38,5103.5889,400.8531,5
2,15:26:40,5103.5864,400.8449,6
3,15:26:43,5103.5815,400.8335,10
4,15:26:44,5103.5771,400.8259,12
5,15:26:48,5103.5688,400.8123,15
6,15:26:50,5103.5659,400.7946,22
7,15:26:52,5103.5513,400.7545,36

ここにあるのは、名前、時間、緯度、経度、速度です。

今のところ、次のような単純な手続き型コードを使用しています。

List<GeoCoordinate> coordinates = new ArrayList<GeoCoordinate>();
        for (String line : gpsDump.split("\\n")){
            List<String> items = Arrays.asList(line.split("\\s*,\\s*"));
            GeoCoordinate c = new GeoCoordinate();
            Date date = null;
            try {
                date = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse(items.get(1));
            } catch (ParseException ex) {
                Logger.getLogger(GeoTrackController.class.getName()).log(Level.SEVERE, null, ex);
            }
            c.setDateTime(date);
            c.setLatitude(Float.parseFloat(items.get(2)));
            c.setLongitude(Float.parseFloat(items.get(3)));
            c.setSpeed(Integer.parseInt(items.get(4)));
            coordinates.add(c);
        }

しかし、私はこのコードを書き直して、よりオブジェクト指向にしたいと考えています。私は最初、セッターのEntityクラスでこれらを変換することを考えましたが、基本的なトレーニングを受けたとき、彼らはそれを思いとどまらせました。

コンバーターについても読みましたが、テキストボックスのみに使用されているようです。

では、これを行う最善の方法は何ですか?

4

1 に答える 1

0

コンバーターについても読みましたが、テキストボックスのみに使用されているようです。

間違っています。どのUIComponent実装でも使用できますValueHolder(このインターフェイスは、コンバーターを取得/設定するためのゲッターとセッターを定義していることに注意してください)。<h:inputTextarea>で表されるもこのHtmlInputTextareaカテゴリに分類されます。

<h:inputTextarea ... converter="geoCoordinateCsvConverter" />

JSFConverterは、モデル表現での Java オブジェクト ベースの形式と、HTML 表現での文字列/文字列ベースの形式との間で変換を行う正しい方法です。

于 2013-04-10T11:35:06.213 に答える