1

我的问题是标签a中的属性onclick 。我想在属性onclick中执行 scriplet 命令。当我写这个时......

<a href="somethig" onclick="session.setAttribute('newAttribute','value')" >Click on me</a>

...所以什么都没有发生(会话的属性未设置),如果我写这个

<a href="somethig" onclick="<% session.setAttribute('newAttribute','value'); %>" >Click on me</a>

所以,会话的属性现在设置(不是当我点击它时)。

(对不起我的英语,我是初学者:)

4

1 回答 1

3

您混淆了客户端代码和服务器端代码的角色。

锚标记的“onclick”事件将仅在客户端上执行。

您的代码将发送给客户端:

<a href="somethig" onclick="" >Click on me</a>

但会在服务器上执行以下操作:

session.setAttribute('newAttribute','value');

<% %> 标签表示代码在服务器上运行,而不是在客户端上。

因此,为了使其工作,您需要执行某种 javascript 来“回调”到服务器,以表明链接已被点击。这通常是通过对服务器上另一个页面的 AJAX 调用来完成的。

于 2009-04-11T11:04:45.267 回答