给个思路!! 
  用的是Struts1.x
  有一个成品单  (table1) 
  一个零件单 (table2)都要放在index.jsp页 从成品单里面去查单号(query.jsp)查出来的要放在index.jsp里的table.< 从struts里面返回List>从零件单里去查零件(多个零件组成一个成品 querylist.jsp)<都是从struts里面返回List>
 
可能是4个或多个零件组成一个成品单都要显示在index.jsp还有怎么防止刷新呢?当我把零件记录传过去的时候成品表的记录要不被刷新 还有我插入第2个零件时怎么防止第一个被刷新(同理还有以下的零件)之后做一笔记录存到数据库..不知看明白了没 想过用iframe但不可行.现在Struts里面返回的是List最后应该形成这这样
成品 ---   ---   ---   ---   ----零件1---  ----   ----  ----  ----零件2---  ----   ----  ----  ----零件3---  ----   ----  ----  ----零件4---  ----   ----  ----  ----
 
SAVE
插入到数据库.上面的都是从数据库里查出来在返回给 index.jsp
List<SomeObject> someList =new ArrayList <SomeObject>();
 while(rs.next()){
       so =new SomeObject();
       so.setLh(rs.getString("lh"));
       so.setPm(rs.getString("pm"));
       so.setGg(rs.getString("gg"));
       someList.add(so);
     }
    request.setAttribute("someList", someList);
   //用AJAX这里应该是返回null;了吧.用AJAX应该怎么写小弟才接触AJAX希望给个实例

解决方案 »

  1.   

     //用AJAX这里应该是返回null;了吧.
    你要用哪一种,现在ajax的版本也多了
    dwr和xmlhttprequestWEBXML配置
      <!-- dwr配置 -->
                 
    <servlet>
       <servlet-name>dwr-invoker</servlet-name>
       <servlet-class>
          org.directwebremoting.servlet.DwrServlet
       </servlet-class>
       <init-param>
          <param-name>debug</param-name>
          <param-value>false</param-value>
       </init-param>
       <init-param>
          <param-name>initApplicationScopeCreatorsAtStartup</param-name>
          <param-value>true</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
    </servlet>
    <script src="dwr/interface/checkUser.js"></script>
    <script src="dwr/engine.js"></script>
    <script src="dwr/util.js"></script>
    <script type="text/javascript">
      function check(txtPetId){
       var petId = txtPetId.value;
      
       checkUser.checkLogin(petId,huidiao);
      }
      function huidiao(check){
       if(check == '11'){
       alert('该宠物存在,请输入密码');
       }
       else{
       alert('该宠物不存在,请先注册');
       }
      }
      
      function doLogin()
      {
       document.form1.operation.value="doLogin";
       document.form1.submit();
      }
      </script>
    dwr.xml需要写的---------------------------------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC 
            "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" 
    "http://getahead.org/dwr/dwr20.dtd"> 
    <dwr>
        <allow>
             <create creator="new" javascript="checkUser">
                 <param name="class" value="com.jzaccp.epet.dao.imp1.PetInfoDaoJdbcImp1" />
                 <include method="checkLogin" />
             </create>
       </allow>
    </dwr>
    --------------------------------随便写的类
    /**
     * 登录成功与否
     */
    public String checkLogin(String pet_id) {
    super.openConnection();
    try{
    String sql = "select * from PetInfo where pet_id = ? ";
    super.pstm = super.conn.prepareStatement(sql);
    super.pstm.setString(1,pet_id);
    super.rs = super.pstm.executeQuery();
    if(super.rs.next()){
    return "11";
    }
    }
    catch(Exception ex){
    ex.printStackTrace();
    }
    finally{
    super.closeConnection();
    }
    return "22";
    }
      

  2.   

    第二种
    script type=textjavascript
    !--
    var xmlHttpRequest;
    function unameCheck(txt){
    var uname = txt.value;

    if(!uname){
    alert(用户名不能为空!);
    txt.focus();
    return;
    }
     创建XMLHttpRequest组件
    xmlHttpRequest = createXmlHttpRequest();
    var url = httplocalhost8080y2t04_sshaajaxLogin.douname= + uname;
    var url = document.URL;
    url = url.substring(0, url.lastIndexOf(''));
    url = url.substring(0, url.lastIndexOf('') + 1);
    url = url + ajaxLogin.douname= + uname;

     设置回调函数
    xmlHttpRequest.onreadystatechange = callbackFun;
     初始化XMLHttpRequest组件
    xmlHttpRequest.open(GET, url, true);
     发送请求
    xmlHttpRequest.send(null);
    }

    function callbackFun(){
    if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
    var t = xmlHttpRequest.responseText;
    if(t==t){
    alert(用户名已经存在);
    document.getElementById('vdiv').style.display=none;
    } else {
    alert(用户名可用);
    document.getElementById('vdiv').style.display=inline;
    }
    }
    }

    function createXmlHttpRequest(){
    if(window.ActiveXObject){
            return new ActiveXObject(Microsoft.XMLHTTP);
        }else if(window.XMLHttpRequest){
            return new XMLHttpRequest();
        }
    }

    function dwrCheck(txtname){
    var uname = txtname.value;

    if(!uname){
    alert('请输入用户名!');
    txtname.focus();
    return;
    }

    JUserChecker.check(uname,huidiao);
    }

    function huidiao(exis){
    if(exis == f){
    alert(111);
    } else {
    alert(222);
    }
    }

    --
    script
      head
    package com.jzaccp.t10;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.springframework.beans.BeanUtils;import com.jzaccp.t03.web.form.UserForm;
    import com.jzaccp.t09.LoginBiz;
    import com.jzaccp.t09.TblUser;public class T10LoginAction extends Action {

    private LoginBiz biz = null;

    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) throws Exception {
    UserForm userForm = (UserForm)form;
    // 得到url传值
    String uname = request.getParameter("uname");
    // 接收验证码
    String vcode = request.getSession().getAttribute("rand").toString();
    TblUser user = new TblUser();
    user.setUname(uname);
    //BeanUtils.copyProperties(user, userForm.getUser());
    PrintWriter out = response.getWriter();

    // 判断文本框的值和验证码
    if(uname.equals(vcode)){
    out.print('t');
    } else {
    out.print('f');
    }

    // 判断用户名是否存在
    // if(biz.login(user)){
    // out.print("t");
    // } else {
    // out.print("f");
    // }
    return null;
    } public void setBiz(LoginBiz biz) {
    this.biz = biz;
    }}
      

  3.   

    我只会这么简单滴了,还有一种dwr,你自己去摸索吧,是关于模型滴。。
      

  4.   

    我想用的是JQUery// 设置xmL方式提取
    response.setContentType("html/xml;charset=GBK");
    PrintWriter out = response.getWriter();
    //获取结点
    StringBuilder builder = new StringBuilder();
    builder.append("<message>");下面在应该怎么写.!!
      

  5.   

    你的页面组织有问题,有必要这样用ajax吗?感觉你这样行和列的个数都不确定
      

  6.   

    说的是..小弟才接触AJAX所以写的不好的地方希望指出来,