【问题标题】:Get a URL in a JSP file to run through the controller servlet获取 JSP 文件中的 URL 以通过控制器 servlet 运行
【发布时间】:2011-12-04 16:00:29
【问题描述】:
所以我有一个事件(对象)列表。我想这样做,以便当您单击事件标题时,将包含该事件的其他信息。但是如果我这样写,它不会与提供事件列表的控制器 servlet 交互,它只会直接使用参数 event=ID 进入 EventsOverview.jsp 页面。事件列表将为空。
List<Event> eventList = (List<Event>) request.getAttribute("eventList");
...
<a href="EventsOverview.jsp?event=<%=e.getID()%>"> <%= e.getTitle() %> </a>
【问题讨论】:
标签:
jsp
url
servlets
controller
【解决方案1】:
只需将 JSP 的 URL 替换为 servlet 的 URL。假设servlet是在web.xml上映射的
<url-pattern>/EventsOverview</url-pattern>
或者有新的Servlet 3.0 @WebServlet("/EventsOverview")注解,则需要替换链接如下:
<a href="EventsOverview?event=<%=e.getID()%>"> <%= e.getTitle() %> </a>
或者,如果您遵循现代(好吧,已经快 10 年了;确保您正在阅读正确且最新的书籍/教程)JSP 2.0 编写视图的方式:
<a href="EventsOverview?event=${e.id}"><c:out value="${e.title}" /></a>
无论哪种方式,都会调用 servlet 的 doGet(),您可以在其中完成预处理工作并将请求分派到所需的 JSP 以在 HTML 中呈现结果。
另见: