2013-07-03 184 views
1

Struts標籤s:submit和Struts jQuery標籤sj:submit都以同樣的方式提交。我的意思是,他們刷新頁面並轉發到另一頁面。但我認爲Struts jQuery標籤實現了Ajax,因此在提交時不應更改頁面。我對麼?Struts標籤之間的區別:submit和Struts jQuery標籤sj:submit

我已經在窗體中實現了兩個標籤,同時提交這兩個標籤的方式相同。

<s:form action="part!list" > 
    <s:submit action="part" method="list" /> 
</s:form> 

<s:form action="part!list" > 
    <sj:submit /> 
</s:form> 

如果我使用sj:submit它的工作原理,但我在同一個表單中添加一些Struts標籤按鈕s:submit那麼它不工作。那麼,Struts標籤將無法工作?

回答

1

您可能忘記在<head>的主體中包含<sj:head/>標籤。這個標籤將JQuery stylesheet鏈接到頁面和其他初始事物上,沒有Ajax調用。請參閱正確提交SubmitTag的示例。

如果您通過<sj:submit>進行Ajax調用,則頁面不應刷新,但targets可能會更新成功。如果在頁面的頭部沒有包含JQuery,我認爲表單不會生成任何HTTP請求,它的行爲就像您不包含action屬性一樣。

+0

if works then will not work? – user2543737

1

只需在表格標記中添加id屬性並在<sj:submit>標記中添加targets屬性即可。

<s:form id="myForm" action="part!list"> 
    <sj:submit targets="result"/> 
</s:form> 
+0

+1。添加* id *解決了問題! – informatik01

0

如果不需要觸發ajax調用,則應該使用<s:submit/><s:submit/>使用html機制提交表單,但<sj:submit />正在進行ajax調用,請查看源代碼HERE,它解釋了它的工作原理。如果你需要這個表單來進行ajax調用,那麼就像@AleksandrM說的那樣,定義屬性targets = "result",那麼你應該有類似<div id="result"/>的東西,它包含了ajax調用的結果。

+0

如果您不想顯示結果,則不需要帶'id = result'的元素。 :) –