【发布时间】:2019-08-14 07:47:07
【问题描述】:
我有一个 servlet
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
List<String> topics = new ArrayList<>();
ServletConfig config = getServletConfig();
topics.add(config.getInitParameter("first"));
System.out.println(config.getInitParameter("first")); //prints proper value, not null;
topics.add(config.getInitParameter("second"));
System.out.println(config.getInitParameter("second")); //prints proper value, not null;
topics.add(config.getInitParameter("third"));
System.out.println(config.getInitParameter("third")); //prints proper value, not null;
req.setAttribute("params", topics); //doesn't show up
req.setAttribute("name", config.getInitParameter("name")); //works good
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
和
index.jsp
...
<ol>
<c:forEach var="param" items="${params}">
<li>${param}</li>
</c:forEach>
</ol>
...
Servlet 配置没问题,初始化没问题,映射和命名也没问题,这就是为什么当我访问相应的 URL 时,我会在输出控制台流中打印参数并且它们在那里。然而,出于某种奇怪的原因,JSP 显示:
1. {}
2. {}
3. {}
注意我不想使用 Scriptlet Java 代码,我正在尝试使用 JSTL。我已经看到很多项目以这种方式工作..这里有什么问题?只是厌倦了弄清楚。
【问题讨论】: