javascript - 一个页面的超链接向后台发请求的问题?
PHPz
PHPz 2017-04-11 12:05:41
[JavaScript讨论组]

先来前jsp页面的代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>




     
    
无线点餐平台














餐桌列表

编号 桌名 状态 预定时间 操作
${table.id }  ${table.tableName }  ${table.tableStatus == 1 ? "预定":"空闲" } ${table.tableStatus == 1 ? "退订":"预定" } 删除
没有餐桌信息!请添加后查询。。。。

添加

再来后台处理


    public Object updateDinnerTable(HttpServletRequest request, HttpServletResponse response) {
        Object url = null;
        String id = request.getParameter("id");
        String tableStatus = request.getParameter("tableStatus");
        System.out.println(tableStatus);
        //构建对象
        DinnerTable dinnerTable = new DinnerTable();
        dinnerTable.setId(Integer.parseInt(id));
        dinnerTable.setTableStatus(Integer.parseInt(tableStatus));
        Date orderDate = (Integer.parseInt(tableStatus) == 2) ? null:new Date();
        dinnerTable.setOrderDate(orderDate);
        dinnerTableService.update(dinnerTable);
        
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = df.format(orderDate);
        try {
            PrintWriter writer = response.getWriter();
            writer.write(date);
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        System.out.println("id:" +id + "; tableStatus:" + tableStatus);
        return url;
    }

来运行结果

然后添加一条数据 再对新添加的数据进行操作就报错了

null
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.uiyllong.servlet.BaseServlet.service(BaseServlet.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2508)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2497)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Integer.java:542)
    at java.lang.Integer.parseInt(Integer.java:615)
    at com.uiyllong.servlet.DinnerTableServlet.updateDinnerTable(DinnerTableServlet.java:77)
    ... 27 more

请大神看看哪里有问题

PHPz
PHPz

学习是最好的投资!

全部回复(2)
ringa_lee

根据题主问题的评论,明白题主问题之所在了,你的html是这样的:

<a href="${pageContext.request.contextPath }/dinnertable?method=updateDinnerTable&id=${table.id }" class="FunctionButton" id="isorder">${table.tableStatus == 1 ? "退订":"预定" }</a>

当有多条数据时,这条也会重复多次。可是你是这样选择的:

$("#isorder").click(function(){

重复ID,jquery只会选第一条,CSS可以容错当成class用。你明白问题所在了吧

PHP中文网

对你‘操作’的按钮,debug一下,报null拉。没有提交的数据,就用$.get方式吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号