首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Struts2 +Jquery 在Action里边的方法执行有关问题! 急弄了大半天了

2012-03-05 
Struts2 +Jquery在Action里边的方法执行问题! 急啊!!!!弄了大半天了!我就在struts2.0下做一个简单的Ajax功

Struts2 +Jquery 在Action里边的方法执行问题! 急啊!!!!弄了大半天了!
我就在struts2.0下做一个简单的Ajax功能 结果struts2老是先去执行execute方法 
在网上看了好多例子 可没解决我的问题 唉 谁来棒棒忙啊

先谢过 88分献上
代码如下 


index.jsp

Java code
<%@ page language="java" pageEncoding="UTF-8"%><%@ include file="/Preamble.jspf" %><html> <head>    <title></title> </head>  <body>    <hr>   <s:form action="searchAcc" method="get">        <table align="center" class="table02">                  <tr>               <td class="content_L" width="40%">子公司代號:</td>               <td width="60%"><input type="text" id="company_no" name="company_no"/></td>           </tr>           <tr>               <td class="content_L">分行代號:</td>               <td><input type="text" name="bank_id" id="bank_id"/></td>           </tr>           <tr>               <td class="content_L">廠商代號:</td>               <td><input type="text" id="factory_id" name="factory_id"/></td>           </tr>              <tr>               <td id="label"></td>                          <td  class="text_R">          <s:submit value="%{getText('text.confirm')}" onclick="confirmData()" cssClass="f_btn01"/>          <s:reset cssClass="f_btn01" value="%{getText('text.reset')}"/></td>             </tr>                       </table>        </s:form> </body> <script type="text/javascript">function confirmData(){    var com=$("#company_no");    var bank=$("#bank_id");    var factory=$("#factory_id");alert(com.val());    $.get("searchAcc!ajax.action", { company_no: "56757", bank_id:"777",factory_id:"6666" },          function(data){        alert("Data Loaded: " + data);      });     if(data){      $("#label").text("無此驗收單!");      $("#label").attr("class","overdue");  }  alert(2)  return data;} </script></html>



Action 代码
Java code
package com.plat.acc.action;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.struts2.ServletActionContext;import util.BeanUtil;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.plat.acc.proxy.AcceptenceProxy;public class SearchAccAction extends ActionSupport{    private static final Log log = LogFactory.getLog(SearchAccAction.class);    private String company_no;//能传到页面    private Integer bank_id;    private Integer factory_id;    /**     *处理用户请求的excute()方法     *@return结果导航字符串     *@throws Exception      */    public String execute() throws Exception{        return SUCCESS;            }        public void ajax(){                    PrintWriter pw = null;            HttpServletResponse response = ServletActionContext.getResponse(); //取response对象            try {                response.setContentType("text/xml;charset=utf-8");                    response.setHeader("Cache-Control","no-cache");                                                   /*AcceptenceProxy proxy=(AcceptenceProxy)BeanUtil.getBean(AcceptenceProxy.ROLE);            List list=(ArrayList)proxy.findAccByLtd_Bank_Fac(this.company_no,this.factory_id,this.bank_id);;            */                        pw = response.getWriter();                pw.print("");                pw.print("");                pw.print("");            } catch (IOException e) {                log.error(e.getMessage());                e.printStackTrace();            } finally{                if(pw != null){                    pw.close();                    pw = null;                }            }        }           public String getCompany_no() {        return company_no;    }    public void setCompany_no(String company_no) {        this.company_no = company_no;    }    public Integer getBank_id() {        return bank_id;    }    public void setBank_id(Integer bank_id) {        this.bank_id = bank_id;    }    public Integer getFactory_id() {        return factory_id;    }    public void setFactory_id(Integer factory_id) {        this.factory_id = factory_id;    }} 





Struts.xml

Java code
 <!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"        "http://struts.apache.org/dtds/struts-2.0.dtd">  <struts> <package name="default" extends="struts-default">        <!-- 定义处理请求URL为login.action的Action -->        <interceptors>        <interceptor-stack name="mystack">            <interceptor-ref name="checkbox" />                        <interceptor-ref name="timer" />            <interceptor-ref name="logger" />            <interceptor-ref name="params" />        </interceptor-stack>            </interceptors>                                    <action name="searchAcc" class="com.plat.acc.action.SearchAccAction">            <!-- 定义处理结果字符串和资源之间的映射关系 -->            <result name="success">/plat/index.jsp</result>            <result name="forword">/plat/error.jsp</result>            <interceptor-ref name="mystack" />           </action>        </package> </struts> 


[解决办法]
晕,楼主,ajax一般用于异步的访问服务器,你把他放到submit按钮里面你还用ajax干啥?
你只要用另外一个客户端事件来激发ajax调用就可以了,别和submit搞一起。

热点排行