gpt4 book ai didi

java - 将整数传递给 Servlet

转载 作者:行者123 更新时间:2023-11-29 08:04:22 25 4
gpt4 key购买 nike

从传递电话号码的表单提交中获取 NumberFormat 异常。但是,传递的数字实际上是一个数字,我在 servlet 中将其转换为一个 int。在错误消息中,您可以看到在 - 8456640236 中输入了一个整数。

Servlet 方法

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
Contact newComment = new Contact();

newComment.setName(request.getParameter("nameParameter"));
newComment.setEmail(request.getParameter("emailParameter"));
newComment.setPhone(Integer.parseInt(request.getParameter("phoneParameter")));
newComment.setComment(request.getParameter("commentParameter"));

request.setAttribute("commentAttribute", newComment);

RequestDispatcher view = request.getRequestDispatcher("/successComment.jsp");
view.forward(request, response);
}

错误信息

java.lang.NumberFormatException: For input string: "8456640236"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:461)
java.lang.Integer.parseInt(Integer.java:499)
org.test.Servlet.doPost(Servlet.java:21)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

最佳答案

您尝试解析的值大于 Integer 可以容纳的值,231-1 , 即 2147483647。

您需要将其设为 Long(或 long)并使用 Long#parseLong()解析它。

newComment.setPhone(Long.parseLong(request.getParameter("phoneParameter")));

请注意,这个具体问题与 JSP/Servlets无关,但与 basic Java 无关。 .在具有 main() 方法和硬编码值的普通 vanilla Java 类中执行此操作时,您会遇到完全相同的问题(这会更容易隔离问题)。

关于java - 将整数传递给 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343854/

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