質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

Q&A

2回答

2323閲覧

[JSP]キーボード入力を配列の中身と交換し画面に反映させる方法について

Wasabi

総合スコア8

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

0グッド

0クリップ

投稿2016/02/08 03:42

###実現したいこと
現在、JSPを用いてJavaプログラム学習システムを作成しています。
そのシステムで、「訂正したいプログラムの場所(単語)を選択し、キーボード入力で書き換えて訂正する」
という動作が必要となるのですが、どうすれば実現できるのかがイマイチわかりません。
ご教授のほどよろしくお願い致します。

###発生している問題
onclickを用いてキーボードから入力された値は取得できるが、元のプログラムの入っていた配列の中身と交換、及び表示ができない。

###ソースコード(一部)

<script> function Click(teisei,i){ //クリックで入力欄表示、値を取得 user = window.prompt("正しいプログラムに直してください","" + teisei); document.getElementById('answer'+ i).innerHTML = user; document.js.ans.value = user; } </script> <% String[] test2 = test_code.split("\\s+"); /*プログラムファイルを空白、改行などで分割*/ for(int i = 0; i <= test2.length-1; i++){ %> <a href="#" onclick='Click("<%=test2[i]%>","<%=i%>")'><%=test2[i]%></a> <!--プログラム表示--> <a id="answer<%=i%>" ></a> <!--入力された値を見るため、とりあえず入れている--> <% if(test2[i].indexOf(';') != -1){ /*;が含まれていたら改行*/ %> <br> <% } if(test2[i].indexOf('{') != -1){ /*{が含まれていたら改行*/ %> <br> <% } if(test2[i].indexOf('}') != -1){ /*}が含まれていたら改行*/ %> <br> <% } } %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

javascriptから、すでに実行がおわったjavaプログラムの内容を変更することは不可能かと思われます。
inputの内容をみて、javascriptで非同期通信して、サーバ側でinput内容を確認して、
適宜、ページの内容を変更する、くらいが落とし所だと思います。
それがしんどいならば、いっそformで送信してしまうとか。

投稿2016/02/08 04:00

keiji-yoneda

総合スコア33

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Wasabi

2016/02/08 05:13

不可能ですか…。 ちょっとformを使う方向で考えてみます。ありがとうございました。
guest

0

むりくりやるのであれば、
元のデータとは別の「変更後のデータを入れておく変数」をJavascriptで準備しておき、
一度でも修正した場合にフラグを立てて、そちらへ格納するようにして、
「確定」ボタンなどを準備してsubumitする。。。とか?

サーバー側のJavaやJSPは画面が表示される前に実行されますが、
Javascriptは画面が表示された後に実行されます。
JSPで処理・表示された値を完全に変更するには、一度サーバー側にデータを送信して処理する必要があります。

投稿2016/02/08 05:14

kaputaros

総合スコア1844

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問