将参数从javascript传递到JSP

Passing parameters from javascript to JSP

本文关键字:JSP javascript 参数      更新时间:2024-04-02

我正在尝试编写下一段代码。我有一个图像和一个按钮。我想在点击图像时更改按钮的值(标题)。有人能告诉我这里怎么了吗?(如果你发现愚蠢的打字错误,忽略它,我不想复制粘贴所有内容)。

关于脚本部分的另一个问题(可能与我的问题有关):方法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%>"/>

scriptlet中的所有代码都将在服务器端执行。没有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中。