You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSP中通过JavaScript获取点击的用户链接信息并传至控制器

解决JSP中点击用户链接传递用户名到控制器的问题

别担心,我刚接触JavaScript和JSP的时候也踩过这个坑,给你几个简单易上手的方案,完全适合JS经验不多的情况:

方案1:直接在URL里拼接参数(零JS代码,最省心)

这是最简单的方法,根本不需要写JavaScript,直接在JSP生成用户链接的时候,把用户名作为URL参数拼进去就行:

<!-- 假设你用JSTL遍历用户列表 -->
<c:forEach items="${userList}" var="user">
  <a href="${pageContext.request.contextPath}/your-controller-path?username=${user.username}">
    ${user.username}
  </a>
  <br>
</c:forEach>

然后在你的控制器类里,直接接收这个参数就行:

  • 如果是Spring MVC:
@GetMapping("/your-controller-path")
public String handleUserClick(@RequestParam("username") String username) {
  // 这里就拿到点击的用户名了,做你需要的逻辑
  System.out.println("点击的用户名:" + username);
  return "your-view";
}
  • 如果是普通Servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  String username = request.getParameter("username");
  // 处理逻辑
}

方案2:用JavaScript获取点击内容并跳转(适合需要额外处理的场景)

如果因为某些原因不能直接在URL里拼参数,或者需要先做一些JS处理再跳转,那可以给所有用户链接加个统一的类,然后绑定点击事件:

首先在JSP里给链接加类:

<c:forEach items="${userList}" var="user">
  <a href="#" class="user-link">${user.username}</a>
  <br>
</c:forEach>

然后在页面底部加一段简单的JavaScript:

// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
  // 获取所有用户链接
  const userLinks = document.querySelectorAll('.user-link');
  // 给每个链接绑定点击事件
  userLinks.forEach(link => {
    link.addEventListener('click', function(e) {
      // 阻止默认的跳转行为
      e.preventDefault();
      // 获取点击的用户名(trim()去掉前后空格)
      const username = this.textContent.trim();
      // 跳转到控制器,用encodeURIComponent处理特殊字符(比如空格、&等)
      const url = '${pageContext.request.contextPath}/your-controller-path?username=' + encodeURIComponent(username);
      window.location.href = url;
    });
  });
});

关键注意点:

  • 一定要用encodeURIComponent()处理用户名,避免用户名里有空格、&、=这些特殊字符导致参数传递出错。
  • 上面的原生JS代码不需要依赖任何库,对新手友好,如果你项目用了jQuery,代码可以更简洁,但原生写法兼容性更好。

内容的提问来源于stack exchange,提问作者bwdiggs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:04:36