Java 使用ajax调用使用action类返回的数据刷新(更新)表的各个行

Java 使用ajax调用使用action类返回的数据刷新(更新)表的各个行,java,javascript,ajax,jsp,jpa,Java,Javascript,Ajax,Jsp,Jpa,从这么多天来,我一直在努力完成这件事,但我失败了。 请在下面查看一下我的jsp: 在这里,我有一个表和所有我有刷新图标的每一行,我想在单击图标时刷新单个行 onclick我正在调用一个函数->刷新记录(值)value(parameter)是fileid(unique)->即作为参数传递给函数的表的第一列 ajax使用fileId调用checkStatusAndNumRecsaciton,在action类中,我调用我的JPA方法从数据库中获取数据,它使用我传递的fileId读取行,并将其放入JSO

从这么多天来,我一直在努力完成这件事,但我失败了。 请在下面查看一下我的jsp:

在这里,我有一个表和所有我有刷新图标的每一行,我想在单击图标时刷新单个行

onclick我正在调用一个函数->刷新记录(值)value(parameter)是fileid(unique)->即作为参数传递给函数的表的第一列

ajax
使用
fileId
调用
checkStatusAndNumRecs
aciton,在action类中,我调用我的
JPA
方法从数据库中获取数据,它使用我传递的
fileId
读取行,并将其放入
JSONObject

在ajax部分的jsp中,它的执行有时会成功,大多数时候会出错, 当它是success时,在success部分中,它无法执行这一行->var
obj=jQuery.parseJSON(eval(data))

这意味着有时数据会返回到ajax,有时数据不会从action类返回到ajax

这是我的jsp页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>

<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
"http://www.w3.org/TR/html4/loose.dtd">
<html> 
    <head>
        <title>File Upload</title>
        <script type="text/javascript" src="js/jquery-1.4.1.min.js"></script>
        <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
        <script type="text/javascript" src="js/jquery.min.js"></script>
       <link rel="stylesheet" type="text/css" href="css/style1.css" />
       <link rel="stylesheet" type="text/css" href="css/button.css" />
        <link href="css/common-style.css" rel="stylesheet" type="text/css" /> 
        <style>
        a{
        color:white;
        text-decoration:none;
        }
        </style>
         <script type="text/javascript">
        var id;
         function refreshRecord(value)
        {
            id = value;
        }

        $(document).ready(function(){
            $("#refresh").click(function(){
               var fileId=id;
               $.ajax({
               type:"post",
                url:"checkStatusAndNumRecs",
               data:{fileId:fileId},
                success:function(data)
               {
                    alert(data);
                    var obj = jQuery.parseJSON(eval(data));->THis statement is not executing
                    aler("after JSON OBJECT"+obj.status);
                   $("#div1").html(obj.status);
                   $("#div2").html(obj.records);
               },
               error:function(data)
            {
                $("#div1").html("It was a failure !!!");
            }
                });
                });
          });
        </script>    
        </head>
    <body>
    <%@include file="index1.html" %>
    <div class="box2">    
     <div class="box3"> 
    <s:property value="userId"/>
    </div>  
        <center><h2>FILE STATUS</h2></center>
    <center> 

        <form action="Upload" method="post" enctype="multipart/form-data">
             <label for="myFile" class="text">Upload your file:</label>
            <input type="hidden" name="upload" value="upload"/>
            <input type="file" name="myFile" size="40"  class="file"/>
            <input type="submit" value="Upload" class="button"/>
            <input type="submit" value="Refresh" class="button"/>
        </form>

        </center>
        <center>    
           <s:if test="%{user.roles == 'admin'}">
        <form action="manage" method="post" enctype="multipart/form-data">
            <label for="myFile" class="text">Click to manage service providers:</label>
            <input type="submit" value="Manage" class="button"/>
        </form>
        </s:if>
        </center>
          <center>
         <table border="1" class="displaytab" id="rtable">
         <s:if test="%{user.roles == 'admin'}">
         <tr>   <td  colspan="10" style="background:#7395B8;color:white;font-size:18px;font-weight:bold;"><center>Admin</center></td></tr>
         </s:if>
         <tr> 
         <th>FileId</th><th>File Name</th><th>Upload Date</th><th>#Records</th><th>Status</th><th>Estimated Time</th><th>Processed Records</th><th>Generate Report</th><th></th><s:if test="%{user.roles == 'admin'}"><th>Controls</th></s:if>
         </tr>

         <s:iterator value="uploadList" var="m"> 
            <tr>   
            <td><s:property value="%{#m.fileId}" /></td> 
            <td><s:property value="%{#m.fileName}" /></td>
            <td><s:property value="%{#m.uploadDate}" /></td>
            <td><div id="div2"><s:property value="%{#m.numRecords}" /></div></td>
            <td><div id="div1"><s:property value="%{#m.status}" /></div></td>
            <td>tbd</td>

            <td><s:property value="%{#m.numRecords}" /></td>
            <td><a href=""><img src="images/generate.png" title="Generate Report"></a></td>
            <td><a href=""><img src="images/refresh.png" title="Refresh" id="refresh" onclick="refreshRecord(<s:property value="%{#m.fileId}" />);"></a></td>
            <s:if test="%{user.roles == 'admin'}">
                 <td><a href=""><img src="images/details.png"></a>
                 <a href=""><img src="images/plus.png" title="Add Instance"></a>
                 <a href=""><img src="images/minus.png" title="Remove Instance"></a>
                 <a href=""><img src="images/download.png" title="Download"></a>
                 <a href=""><img src="images/reconnect.png" title="Reconnect"></a></td>

            </s:if>
            </tr>
         </s:iterator>
         </table>
         </center>

         <br>
         <br>
         <br>
         <br>  
         <center>
         <s:if test="%{user.roles == 'admin'}">

<!--          <select name="user names">
            <s:iterator value="userNamesList">
                <option value="emailColumn" > <s:property/>
                </option>
            </s:iterator>
        </select> -->

         <table border="1" class="displaytab" id="usertab">
         <s:if test="%{uploadListMap.size() != 0}">   
         <tr>   <td  colspan="10" style="background:#7395B8;color:white;font-size:18px;font-weight:bold;">User Job Details</center></td></tr>
         <tr> 
         <th>FileId</th><th>File Name</th><th>Upload Date</th><th>#Records</th><th>Status</th><th>Estimated Time</th><th>Processed Records</th><th>Generate Report</th><th></th><s:if test="%{user.roles == 'admin'}"><th>Controls</th></s:if>
         </tr>
         <s:iterator  value="%{uploadListMap}">
         <tr>   <td  colspan="10" style="background:#7395B8;color:white;font-size:18px;font-weight:bold;"><center><s:property value="key"/></center></td>
         <s:iterator value="value" var="u">
         <tr>
            <td><s:property value="%{#u.fileId}" /></td> 
            <td><s:property value="%{#u.fileName}" /></td>
            <td><s:property value="%{#u.uploadDate}" /></td>
            <td><s:property value="%{#u.numRecords}" /></td>
            <td><s:property value="%{#u.status}" /></td>
            <td>tbd</td>
            <td><s:property value="%{#m.numRecords}" /></td>
            <td><a href=""><img src="images/generate.png" title="Generate Report"></a></td>
            <td><a href=""><img src="images/refresh.png" title="Refresh" id="refresh" onclick="refreshRecord(<s:property value="%{#u.fileId}" />);"></a></td>
            <td><a href=""><img src="images/details.png"></a>
                 <a href=""><img src="images/plus.png" title="Add Instance"></a>
                 <a href=""><img src="images/minus.png" title="Remove Instance"></a>
                 <a href=""><img src="images/download.png" title="Download"></a>
                 <a href=""><img src="images/reconnect.png" title="Reconnect"></a></td>
         </tr>
         </s:iterator>
         </tr>
         </s:iterator>
         </s:if>
         </table>
         </s:if>
         </center> 
         </div>
    </body>
</html>
请在这方面指导我,我已经为此奋斗了很多天,而且我对ajax还是新手。 先谢谢你

This is my struts.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
   <constant name="struts.devMode" value="false" />
   <constant name="struts.multipart.maxSize" value="1000000" />
   <result-type name="json" class="org.apache.struts2.json.JSONResult" default="false" />

   <package name="struts" extends="struts-default">   
    <action name="RegisterationProcess" class="com.mxui.RegisterationFormAction">
     <result name="SUCCESS">registerationform.jsp</result>
     <result name="customerRegister">successregisteration.jsp</result>     
   </action>

     <action name="CheckUserValidation" class="com.mxui.CheckUserAction">
     <result name="SUCCESS">noofrows.jsp</result>
     </action>

   <action name="ProcessLogin" class="com.mxui.LoginAction">
       <result name="LOGIN" >login.jsp</result>
       <result name="REGISTER">registerationform.jsp</result>
       <result name="ERROR" type="redirect">login.jsp</result>
       <result name="FILEUPLOAD"  type="redirect">Upload</result>   
    </action>    

      <action name="Upload" class="com.mxui.UploadFileAction">        
      <result name="SUCCESS">fileupload.jsp</result>       
      <result name="LOGINERROR" type="redirect">ProcessLogin</result>
      <result name="PREVIEW" type="redirect">FilePreviewAction</result>       
      <result name="ERROR">error.jsp</result>
      </action>   

   <action name="FilePreviewAction" class="com.mxui.FilePreviewAction">
     <result name="SUCCESS">filepreview.jsp</result>
    <result name="JOBCREATED" type="redirect">Upload</result>
    <result name="ERROR" type="redirect">ProcessLogin</result>  
   </action> 

   <action name="ServiceProviderProcess" class="com.mxui.ServiceProviderAction">
     <result name="SUCCESS">CreateProvider.jsp</result>
     <result name="serviceprovider" type="redirect">Upload</result>     
   </action>

   <action name="UpdateServiceProviderProcess" class="com.mxui.UpdateServiceProviderAction">
     <result name="SUCCESS">updateserviceprovider.jsp</result>
     <result name="updated" type="redirect">Upload</result>     
   </action>

   <action name="manage" class="com.mxui.ManageServiceProviderAction">    
   <result name="SUCCESS">manageserviceprovider.jsp</result>   
      </action>
   </package>

   <package extends="struts-default,json-default" name="name" namespace="">
   <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor" />

   <action name="checkStatusAndNumRecs" class="com.mxui.checkStatusAndNumRecsAction" method="execute">
         <result type="json"></result>
   </action>
</package>
</struts>
这是我的struts.xml文件:
registerationform.jsp
successRegistration.jsp
noofrows.jsp
login.jsp
registerationform.jsp
login.jsp
上传
fileupload.jsp
进程登录
文件预览操作
error.jsp
filepreview.jsp
上传
进程登录
CreateProvider.jsp
上传
updateserviceprovider.jsp
上传
manageserviceprovider.jsp

JSP页面中的

$.ajax({
        type: 'POST', 
        url: 'checkStatusAndNumRecs',
        data:{fileId:fileId},
        dataType: 'json',
        async: false ,
        contentType: 'application/json; charset=utf-8',
        success: function(data){
            alert(data);
            var obj = jQuery.parseJSON(eval(data));->THis statement is not executing
            alert("after JSON OBJECT"+obj.status);
            $("#div1").html(obj.status);
            $("#div2").html(obj.records);
           },
           error:function(data)
        {
        $("#div1").html("It was a failure !!!");
        }
        });
        });
      });
Struts.xml

将全局结果定义为

 <result-type name="json" class="org.apache.struts2.json.JSONResult" default="false" />

行动

<package extends="struts-default,json-default" name="name" namespace="">
   <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor" />

   <action name="YouAction" class="YourActionClass" method="executeMethod">
         <result type="json"></result>
   </action>
</package>


no it not working in我包含了警报有时我可以在警报中看到数据有时它显示为空..@pikrut是的,我正在使用struts2。我想您正在使用struts。struts ajax支持不同。我将使用struts2发布ajax操作。请使用此链接检查:元素类型“package”的内容必须匹配(结果类型?、拦截器?、默认拦截器引用?、默认操作引用?、默认类引用?、全局结果?、全局异常映射?、操作*)”。位于(null:62:14)org.xml.sax.saxpasseeption:元素类型“package”的内容必须匹配(结果类型?、拦截器?、默认拦截器引用?、默认操作引用?、默认类引用?、全局结果?、全局异常映射?、操作*)”。我发现这个错误应用程序不仅在运行。我补充说在struts.xml中应该是成功的,答案编辑请检查。dnt不知道为什么它给出404错误请求的资源找不到我可以发布我的struts.xml文件吗
<package extends="struts-default,json-default" name="name" namespace="">
   <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor" />

   <action name="YouAction" class="YourActionClass" method="executeMethod">
         <result type="json"></result>
   </action>
</package>