0

我得到了我制作的这个程序:http ://www.2shared.com/file/73q6K9Yy/testv.html Login.java 是 servlet,它应该使用 login.vm 模板,并对其进行修改。它什么也没做,我不明白为什么。在函数中:

public Template handleRequest(HttpServletRequest request,HttpServletResponse response, Context ctx )

如果我放:

 error= (String) request.getAttribute("error");
 ctx.put("error", error);

它什么也没做。如果我放:

 error= request.getAttribute("error").toString();
 ctx.put("error", error);

我得到一个 Java 空指针异常。但是如果我说:

 ctx.put("error","this is a string");

它将模板 login.vm 的变量更改为该字符串。为什么它没有从请求中获取属性,我做错了什么。

PS:如果我按下注册按钮,它应该将我重定向到“/reg.jsp”页面。我做这个只是为了看看它是否有效,它没有。在 MVC 中使用 jsp 制作了相同的程序,但我需要用速度来制作它,以便我的实习。

4

1 回答 1

1

我最好的猜测是您的请求中的“错误”键下没有属性。它与 Velocity 本身无关。如果您检查发生空异常的行号,它应该是代码摘录的第一行。

请注意,在 Web 上下文中,您应该使用来自velocity-tools 子项目的 VelocityViewServlet,而不是将在下一个版本中消失的已弃用的 VelocityServlet。

于 2012-04-23T10:58:02.420 回答