Java/JSPに構文的に有効なJS配列構文を出力させるだけです。Java/JSPとJavaScriptは同期して実行されないことに注意してください。Java / JSPはHTMLを1つの大きなものとして生成しString
、JSはその一部にすぎません。JSは、Java / JSPからすべてのHTML出力を取得すると、最終的にWebブラウザで実行されます。
最終的に次の有効なJS配列構文が必要であると想定します。
<script type="text/javascript">
var strComboValue = [ "one", "two", "three" ];
</script>
次に、Java / JSPコードを適宜記述して、その構文が正確に出力されるようにする必要があります。
<script type="text/javascript">
var strComboValue = [
<%
String[] options = DBComboOptions.getOptions(combos);
for (int i = 0; i < options.length; i++) {
%>
"<%= options[i] %>"
<%
if (i + 1 < options.length) {
%>
,
<%
}
}
%>
];
</script>
それはひどく読めないだけです(そしてtaglibsの代わりに昔ながらの スクリプトレットを使用しているためだけではありません)。ただし、より簡単なのは、 Google GsonのようなJSON(JavaScript Object Notation)ライブラリを取得getOptionsAsJson()
して、次のようなことを行う追加のメソッドを作成することです。
public getOptionsAsJson(Object value) {
return new Gson().toJson(getOptions(value));
}
そして最後に代わりにそれを使用してください:
<script type="text/javascript">
var strComboValue = <%=DBComboOptions.getOptionsAsJson(combos)%>;
</script>