我的问题是标签 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>
所以,会话的属性现在已设置(不是当我克隆它时)。
(对不起我的英文,我是初学者:)
答案 0 :(得分:3)
您混淆了客户端代码和服务器端代码的角色。
锚标记的'onclick'事件将仅在客户端上执行。
您的代码将以:
的形式发送给客户<a href="somethig" onclick="" >Click on me</a>
但是会在服务器上执行以下操作:
session.setAttribute('newAttribute','value');
&lt; %%&gt;标签表示代码在服务器上运行,而不是在客户端上运行。
因此,为了使其工作,您需要执行某种类型的javascript来“回调”到服务器,以便发出已点击链接的信号。这通常是通过对服务器上另一个页面的AJAX调用来完成的。