3

我有一个 JSP,在那个 JSP 中我有一个看起来像的链接

http://mydomain.com/verify.do?email=emailid&id=123

现在,当用户单击该链接时,它会转到我的velocityview servlet,现在我的问题是如何在velocity servlet 中提取这些参数并将其放入上下文中,以便将其发送到我的模板。

我尝试了 getparameter、#set(#request.getAttribute(email) 等。但由于某种原因,我没有看到值进入上下文或模板。

我知道那里有速度参数工具,但我无法找到如何安装和使用它。如果有人能指出正确的方向,我将不胜感激。

4

2 回答 2

8

解决方案是Velocity 上下文。在您的支持 Java 类或 Velocity servlet 中,读入参数并将它们放在上下文中:

context.put("email", request.getParameter("email"));
context.put("id", request.getParameter("id"));

然后在您的 Velocity 模板中,您可以将它们引用为$email$id

于 2012-12-04T14:34:03.953 回答
1

在接受的答案中,您必须明确展开控制器中的所有参数。因此,如果您有 5 个字段,那么您就有 5 个上述语句。

我会建议:

context.put("request", request);

然后在你的模板中是这样的:

<p>Is the Jump Run Heading Good? <b>$request.getParameter("heading")</b></p>  

也许你可以写一个小宏来避免最后一点丑陋。您编写了一个小辅助函数来使用 getParameterNames() 遍历请求参数名称并在每个上调用 getParameter()。

于 2013-01-21T21:23:37.530 回答