java - 无法从 Servlet 到 JSP 获取错误消息(验证)

标签 java jsp servlets

我在 Servlet/JSP 方面遇到问题。我正在尝试验证 Java Servlet 类中 JSP 的 HTML 字段,并将该(可能的)错误消息从 Servlet 返回到 JSP。即使我遵循教程,我也无法解决这个问题。

index.jsp:

   <form action="addWine" method="post">
        <p>
            <input type="text" name="name"/>          
            <input type="submit" value="submit">
            <span class="error">${messages.error}</span>
        </p>
    </form>


添加Wines.java

public class AddingWines extends HttpServlet {

...

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


   Map<String, String> messages = new HashMap<String, String>();
   request.setAttribute("messages", messages);

    String name = request.getParameter("name");
    if(name.trim().isEmpty()){
        messages.put("name", "give a name");
    }

    //No errors in HTML field

    if (messages.isEmpty()) {
        messages.put("noErrors", String.format("Welcome blabla"));
    }

    request.getRequestDispatcher("greatSucceess.jsp").forward(request, response);


web.xml

    <servlet>
    <servlet-name>AddingWines</servlet-name>
    <servlet-class>Servlets.AddingWines</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>AddingWines</servlet-name>
    <url-pattern>/addWine</url-pattern>
</servlet-mapping>

NetBeans 没有抛出任何错误。即使 HTML 字段为空,它也只是定向到greatSuccesss.jsp。该怎么办? (顺便说一句,有足够的信息吗?)

最佳答案

在您的 servlet 中,您将每个请求重定向到greatSuccess.jsp,请参阅最后一行:

request.getRequestDispatcher("greatSucceess.jsp").forward(request, response);

您应该按如下方式更改代码:

if (messages.isEmpty()) {
    request.getRequestDispatcher("greatSucceess.jsp").forward(request, response);
} else {
    // show page with form
}

关于java - 无法从 Servlet 到 JSP 获取错误消息(验证),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20660609/

相关文章:

java - 在 Struts 2 中使用嵌套域对象进行 CRUD 的正确方法是什么?

java - 如何在 Swing 应用程序的对话框中提供 JavaFX 组件?

java - 在 java 中使用 Hibernate 4.0.1 + Spring 3.2.5 时出现错误

javascript - 页面刷新 jsp 后选择框选项保持选中状态

java - session 属性访问并转换为 int?

java - tomcat请求servlet

java - Java中如何判断类成员是否是静态成员和字段

java - 文本输出不保存到文件

java - XMLHttpRequest.open() 之后不会出现 URL 中的 AJAX 变量

java - SIP servlets,聊天服务器