こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

JavaからJavascriptの配列を出力したい

JavaからJavascriptの配列を出力したいのですが、
appendした要素を区切り文字で区切って返す方法が
わかりません。

<%
StringBuffer js = new StringBuffer();
js.append("1");
js.append("2");
%>
Javaで↑のように格納した後に、
下記のようにJavascriptの配列を出力したいです。

if(a = 1){
val=new Array("1,"2");
}

投稿日時 - 2003-04-03 13:45:56

QNo.513765

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

 下のJSPでは、文字列を区切り文字を入れつつ連結し、
それを再び区切り文字のところで別々の文字列に分解しています。
これは、画像を検索してそれを表示するJSPです。

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP to JavaScript</title>
</head>
<body>
<%

java.io.File RootDir = new java.io.File(pageContext.getServletContext().getRealPath("/"));
java.io.File ImageFile[] = RootDir.listFiles(new java.io.FilenameFilter() {
public boolean accept(java.io.File dir, String name) {
if ((name.indexOf(".jpg") >= 0) || (name.indexOf(".jpeg") >= 0) ||
(name.indexOf(".png") >= 0)) return(true);
else return(false);
};
});

StringBuffer js = new StringBuffer("");
if (ImageFile != null) for (int i = 0; i < ImageFile.length; i ++) {
js.append(ImageFile[i].getName());
js.append("|");
};

%>

<script>

var ImageFile = new Array('<%
for (int j = 0, k; j < js.length(); j = k + 1) {
if ((k = js.indexOf("|", j)) < 0) break;
out.print(js.substring(j, k));
out.print("','");
};
%>');

for (var i = 0; ImageFile[i] != ""; i ++) {
document.writeln("ImageFileName=" + ImageFile[i] + "<br>");
document.writeln("<img src='http://localhost:8080/minnaservlet/" + ImageFile[i] + "'><br>");
};

</script>

</body>
</html>

投稿日時 - 2008-09-13 22:35:00

ANo.2

JavaScriptへ配列と考えずに、ブラウザでソースを見た時に
val=new Array("1","2");
と表示されていればいいのですから

<%
String js = new String[2];
js[0] = "1";
js[1] = "2";
String strArray = "\"" + js[0] + "\",\"" +js[1] + "\"";
%>
if(a=1){
val=new Array(<%= strArray %>);
}

でもいいかと思いますけど。
けど、String[]の個数を固定としているのであまりいい例題ではないですね。
あと、出力する文字列への代入方法もいい方法ではないんでしょうね(^^;
こんなこと書いてますけど、もしJavaの方がJSPでないんでしたら参考にならないかもしれませんね。

投稿日時 - 2003-04-03 16:09:08

ANo.1

多分 StringBuffer の利用の方法を勘違いされていると思うんですが。

js.append("1");
js.append("2");

とするとつバッファの内容は 「 12 」となるとります...

Java側で配列のように持たせた値をJavaScript側でも配列として利用出来るようにしようとされているのですか?

投稿日時 - 2003-04-03 14:43:54

お礼

配列ではないのですね。ありがとうございます。
やりたいことは、Beanの内容を次々とgetして
Jascriptの配列を作成したいです。
よろしくお願いします。

投稿日時 - 2003-04-03 15:26:18

あなたにオススメの質問