将参数从javascript传递到JSP

时间:2012-07-29 00:56:56

标签: javascript html jsp

我正在尝试编写下一个代码。我有一个图像和一个按钮。我想在单击图像时更改按钮的值(标题)。谁能告诉我这里有什么问题? (如果你发现愚蠢的拼写错误,我就不会复制粘贴一切)。

和关于脚本部分的另一个Q(可能与我的问题有关):方法request.getParameter(imageId)真的返回函数的上面的参数吗?

JSP:

<%

String messageButton = "Click me!";

%>

<%!

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

%>

html head:

<script>

    button imageClicked(imageId) {

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

    }

</script>

html body:

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

1 个答案:

答案 0 :(得分:0)

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中。