gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:10:49 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com