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不会到达客户端,因为那是在 scriptlet 中。

于 2012-07-29T01:39:33.563 回答