1

私はこの次のコードを書こうとしています。画像とボタンがあります。画像クリック時のボタンの値(タイトル)を変更したい。ここで何が問題なのか誰にも教えてもらえますか? (ばかげたタイプミスを見つけた場合は、それを無視します。すべてをコピーして貼り付けたくありません)。

スクリプト部分に関する別の質問 (おそらく私の問題に関連している可能性があります): メソッド request.getParameter(imageId) は本当に関数の上記のパラメーターを返しますか?

JSP:

<%

String messageButton = "Click me!";

%>

<%!

public void changeStatusButton(String i_MessageButton)
{
    i_MessageButton = "You Clicked The Image!";
}

%>

html ヘッド:

<script>

    button imageClicked(imageId) {

        <% changeStatusButton(request.getParameter(imageId)) %>    

    }

</script>

html 本文:

<input type="image" id="greatimage" onclick="imageClicked(id)"/>
<input id="mybutton" type="button" value="<%=messageButton%>"/>
4

1 に答える 1

1

スクリプトレット内のすべてのコードは、サーバー側で実行されます。サーバーからは Java コードは出ません。出てくるのは HTML だけです。それらがすべて同じ JSP にあるとしてもです。JSP コードは次のようになります。

<% String messageButton = "Click me!"; %> // server-side code
<script type="text/javascript"> // client side code
    function imageClicked() {
        document.getElementById("mybutton").value = "You Clicked The Image!";
    }

</script>

<input type="image" id="greatimage" onclick="imageClicked();"/> // client side code
<input id="mybutton" type="button" value="<%=messageButton%>"/> // client side code with <%=messageButton%> evaluated at server side.

したがって、HTML コードが生成されると、サーバーから出力され、ブラウザでレンダリングされるのは次のとおりです。

<script type="text/javascript">
    function imageClicked() {
        document.getElementById("mybutton").value = "You Clicked The Image!";
    }

</script>

<input type="image" id="greatimage" onclick="imageClicked();"/>
<input id="mybutton" type="button" value="Click me!"/>

スクリプトレット内にあるため、変数でさえmessageButtonクライアント側には届きません。

于 2012-07-29T01:39:33.563 に答える