java - 表单不会向 servlet 发布任何值

标签 java forms servlets

嗯,我的表单没有向我的 servlet 发布任何值。 我已经尝试过其他 id 值。也不起作用。

它不断从表单中获取空值并出现 HTTP 500 错误

java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
login.StoreVM.doPost(StoreVM.java:46)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

这是 HTML 代码:

                  <li>
                    <ul>
                        <li class="title"><h3>Lite</h3><h4>€100<small>/month</small></h4></li>
                        <li class="divider"></li>
                        <li>2 Core CPU</li>
                        <li>4GB RAM</li>
                        <li>50GB Disk Space</li>
                        <li>No Backup</li>
                        <li>8 AM to 5 PM Live Support</li>
                        <li><form method="post" action="storeVM">
                        <input type="text" id="vmstore" value="hello"/> 
                        <button type="submit" class="grey">Sign up now</button>
                        </form>
                 </ul>
             </li>

这是 java servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
    HttpSession session = request.getSession(false);

    //Make some variables and shorter things.
    int button = Integer.parseInt(request.getParameter("vmstore"));
    PrintWriter out = response.getWriter();;

    //Check if session is set.
    if(session == null || session.getAttribute("username") == null) {
        out.println("Please login first before ordering");
        RequestDispatcher rs = request.getRequestDispatcher("index.html");
        rs.include(request, response);
    } else {
        //Parse string to int.
        out.println(button);
        if(button == 1) {
            out.println("yeah");
        } else if (button == 2) {
            out.println("yeah2");
        } else if (button == 3) {
            out.println("yeah3");
        } else {
            out.println("Something went wrong. Please contact us");
            RequestDispatcher rs = request.getRequestDispatcher("index.html");
            rs.include(request, response);
    }

我不知道为什么它不起作用,因为所有其他形式都有效。

最佳答案

答案是更改 <input>命名为“vmstore”。

request.getParameter 不接受 id,只接受 name。

关于java - 表单不会向 servlet 发布任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34002959/

相关文章:

Java Servlet 404 错误

java - 返回带有类型的 spring bean

使用 jframe 的 java 服务器

javascript - 如何设置此输入正则表达式框需要时间?

java - 如何禁用默认 servlet 容器 session ?

java - 转储 java.util.Map 的内容 - 未按预期工作

java - Spark + kafka 集成问题

Java 在 HashMap 中存储对象,以元素字段为键

javascript - 防止 Controller 中的文本提交失败

javascript - 将值从表单字段复制到另一个时如何用下划线替换空格