我正在尝试编写下一个代码。我有一个图像和一个按钮。我想在单击图像时更改按钮的值(标题)。谁能告诉我这里有什么问题? (如果你发现愚蠢的拼写错误,我就不会复制粘贴一切)。
和关于脚本部分的另一个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%>"/>
答案 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中。