无法使用超链接实现Struts 2令牌拦截器

我尝试使用<s:url ..标签实现令牌拦截器,但在第一次单击时显示错误。 即The form has already been processed or no token was supplied, please try again.

我想实现这个拦截器,因为如果用户已经删除了一行并再次刷新页面,那么同一个动作不应该再次执行。

     <a href='https://stackoverflow.com/questions/18822095/unable-to-implement-struts-2-token-interceptor-with-hyperlink/' style="color: white;text-decoration: none;" class="delbuttonlink">Clear current Uploads 

和我的struts.xml

      uploadforward uploadforward   

s:标记标记仅放置包含唯一标记的隐藏元素。

不需要将令牌与url一起使用,因为应该提交表单。 如果要将某个标记作为参数传递,则需要使用s:param标记。

定义参数

  private String token; public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String execute() throws Exception { Map context = ActionContext.getContext().getValueStack().getContext(); Object myToken = context.get("token"); if (myToken == null) { myToken = TokenHelper.setToken("token"); context.put("token", myToken); } token = myToken.toString(); return SUCCESS; } 

在JSP中

  

使用令牌与URL的最简单方法是使用标记将标记值设置为会话并在标记中检索它。