1

struts2 内で ajax を使用してフォームを送信しようとしています。したがって、jQuery リンクを使用してフォームから送信しています。このリンクを使用してアクションを呼び出します。アクションはデータベースに対して SQL クエリを実行し、私またはユーザーがフォームに入力したデータを含む新しいレコードを挿入します。まあ、それが計画であり、実際にそれがどのように機能するかです. しかし、何らかの理由で私のアクションが2回呼び出され、その理由が本当にわかりません..

これは私のJSPです:

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <s:form id="formId" name ="formId" theme="simple" method="post" action="" >
        <s:textfield    id="txt1"   name="txt1" />
        <sj:spinner     id="spr1"   name="spr1" />          
    </s:form>   

    <s:url var="createtesturl" action="create-test"/> 
    <sj:a   id="linkId"
            dataType="json"
            href="%{createtesturl}"
            onSuccessTopics="handleJsonPeriodNew"
            formIds="formId"
            button="true" 
            buttonIcon="ui-icon-gear"
    >Submit</sj:a>

これが私のアクションです (ここでは execute メソッドが 2 回呼び出されます):

@ParentPackage(value = "json-default")
public class CreateTestAction extends ActionSupport {
    private static final long serialVersionUID = 2864711857038235887L;
    private static final Logger log = LoggerFactory.getLogger(CreateTestAction.class);

    private String              txt1;
    private String              spr1;
    private Boolean             success = false;

    @Actions( {
        @Action(value = "/create-test", results = {
            @Result(name = "success", type = "json")
        })
    })

    public String execute()
    {       
        DbCon dbCon = null;

        try
        {
            dbCon= new DbCon();
            success = dbCon.createNewTest(txt1, spr1);
        }
        catch (Exception e)
        {
            log.error("Exception", e);
        }
        finally
        {
            if (dbCon!= null)
            {
                dbCon.close();
                dbCon= null;
            }
        }

        return SUCCESS;
    }



    //Getters and Setters for Attributes

    public String getTxt1() {
        return txt1;
    }

    public void setTxt1(String txt1) {
        this.txt1= txt1;
    }

    public String getSpr1() {
        return spr1;
    }

    public void setSpr1(String spr1) {
        this.spr1= spr1;
    }

    public void setSuccess(Boolean success) {
        this.success = success;
    }

    public Boolean getSuccess() {
        return success;
    }
}

誰でも私を助けることができますか?

4

0 に答える 0