2012-10-30 54 views
0

我有一個select標籤。 s:select裏面的一個表格。我想發送一個帖子請求到這個動作。我有struts 2 json插件。我沒有任何在JavaScript或jQuery。如何提交s的數據:在struts中選擇爲ajax 2

<s:form action="selectFileType" method="post" 
          id="selectFileTypeForm"> 

       <div> 
       <s:select id="select" headerKey="" 
       headerValue="%{getText('uploadAttachmentType.please.select')}" 
         name="uploadAttachmentType" list="attachmentTypeList" 
         required="true" 
         onchange="this.form.submit();"></s:select> 

        <s:hidden id="declarationObj_ideclare" 
         name="declarationObj.ideclare" /> 
        <s:hidden id="declarationObj_completingpersonname" 
         name="declarationObj.completingpersonname" /> 
        <s:hidden id="declarationObj_completingpersonofficaltitle" 
         name="declarationObj.completingpersonofficaltitle" /> 
        <s:hidden id="declarationObj_completingpersonphone" 
         name="declarationObj.completingpersonphone" /> 
        <s:hidden id="declarationObj_completingpersonext" 
         name="declarationObj.completingpersonext" /> 

       </div> 


        </s:form> 

`

+0

你能提供你已經試過寫的代碼嗎? –

+0

這是它(添加上面)。看起來struts 2在每個表單提交上創建一個新的動作類?如何實現struts 1中存在的statefull行爲? –

回答

1

Struts 2中有不好的工具來執行Ajax,但你可以只發送使用jQuery POST請求。

首先,您需要在呈現的頁面的源代碼中找到目標元素並使選擇器。它應該看起來像select[name='searchEngine'] option:selected

然後,您可以編寫腳本,將所選元素的值發送到destination_url。例如:

// get element value 
var selectedItem = $("select[name='searchEngine'] option:selected").val(); 
// send post request 
$.post("destination_url", {item: selectedItem}, function() { 
    alert("ok"); 
}); 

看到一個例子there和閱讀入門指南there

就是這樣。

+0

我不同意這一點。 Struts2有很棒的工具來做Ajax。看到這個插件http://code.google.com/p/struts2-jquery/。 –

+0

我不同意JS周圍的任何標籤封裝是一個好主意(它根本不是struts2錯誤)。這也是dojo標籤的問題。如果這是一個好主意,我們也會用XML寫Java。此處未答覆的jquery標記問題的數量支持它隱藏了詳細信息,而等效的僅查詢jquery的問題將很快得到解決。 – Quaternion

相關問題