Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

strutsアプリでhttpのgetを受けたら、ハッシュの配列を返す事は可能?

こんにちは、ボビンと申します。

現在Androidアプリとstrutsアプリを作成しています。Android側からHttpのGetで、strutsアプリから一覧データを取得しようと思います。

今はstrutsアプリが出力した一覧データがセットされているhtmlを、そのまま取得しています。
このhtmlをループして展開しているのですが、あまりスマートな方法ではなく、何か良い方法がないものかと、投稿させてもらいました。

できればハッシュの配列でstrutsアプリからデータを返してもらえたりすると良いのですが、そのようなオブジェクトを返すような事は不可能でしょうか?

または別の良い方法をご存知であれば教えて下さい。よろしくお願いします。

6

回答

4665

閲覧

6件の回答

評価

0

「ハッシュの配列」のハッシュって、何を意味してるの。
「htmlをループ」ってどういうこと。

画面に表示できるのはあくまで文字列。
(数字は文字列に変換された上で表示される)
その配列の何を表示したいのかも、明確に。

自分には明確かも知れないが、予備知識のない人間には何のことだか
分からない内容。

評価

0

ご説明します。

>「ハッシュの配列」のハッシュって、何を意味してるの。

HashMapのことです。
こういうイメージでした。

List<Map<String, Object>> retDataList = new ArrayList<Map<String, Object>>();


>「htmlをループ」ってどういうこと。

言われている通り、webアプリが返せるものはhtmlという文字列のみの認識なので、この文字列からデータを得るために、1行づつ読み込んでif文で判断し、テーブルタグのtrやtdが出現した時点で一覧データとみなす、ということをしています。

>その配列の何を表示したいのかも、明確に。

?これはどういう意味ですか?
配列にセットされている文字列を得たいのですが。

ようはstrutsアプリがhttpのgetを受けた場合に、結果をhtmlで出力しますが、次のような形(List<Map<String, Object>>)で返す方法はないものかと、考えた次第です。


評価

0

JSON形式のデータを返すのではだめなのでしょうか

評価

0

JSON形式、良さそうですね。
JSON形式で対応できるか調べて、また結果をご報告します。
ざっと調べるとstruts2で扱っているサンプルは出てきますね。struts1なので、1でも対応可能か調べてみます。
やまださん、ありがとうございます。

評価

0

>HashMapのことです。
「ハッシュ」を誤解しているのかもしれない。
「ハッシュ」というのは、値Aからある関数(ハッシュ関数)を通して得られる別の値Bのこと。
HashMapは、内部的にこの値を使っているMapの実装形態。
「ハッシュ」ではなく「マップ」や「マッピング」が、そちらの言いたいことを示している。
I/Fに現れているとおり。

>配列にセットされている文字列を得たいのですが。
List<Map<String, Object>>というI/Fが明示されれば、分かる。
送受信の場合は、I/Fをコードで示したほうが分かりやすい場合も多い。
文字では場合、「(階層)構造を返す」という表現のほうが伝わると思う。

JSONはシンプルでJavaScriptでそのまま扱えるので、Ajaxでは結構使われる。
Ajaxでなくてもいったんvarで受けといて、load時にパースするってこともできる。
Javaでも、StringBuilderにためていくだけで作れる(エスケープは必要だけど)ので、手で実装しても問題ない。

評価

0

>「ハッシュ」を誤解しているのかもしれない。

なるほど、今後はマップやマッピングという言葉を使うようにします。又は1文でもコードをのせるようにします。

>手で実装しても問題ない。

strutsを2にしなくても、それほど実装する手間はかからない、というのは助かります。

$さんありがとうございます。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。