我無法使用的struts2當我手動提交表單而不是形式的行動struts2的重定向到另一頁
我struts.xml的一部分
<action name="login" class="com.abc.csm.actions.Login">
<result type="plainText" name="success"></result>
</action>
<action name="home">
<result name="success" type="redirect">/view/Welcome.jsp</result>
</action>
上的index.html我重定向到另一個頁面有2場,email
和project id
一種形式,所以我提交此表像
$(function() {
$("#loginSubmitBtn").click(submitLogin);
function submitLogin()
{
if(validate())
{
$.post("/csm/login.action",
{ emailaddress: document.getElementById("email_id").value,
projectid: document.getElementById("project_id").value },
function(xml)
{
if($(xml).find('isSuccess').text()=="true")
{
sessiontoken=$(xml).find('sessiontoken').text();
$.post("/csm/home.action", {
sessiontoken: sessiontoken
});
}
}
);
}
}
});
});
在上面的代碼中,我想獲得sessiontoken
從服務器端響應,驗證登錄是否成功,然後重定向到/csm/home.action
,但我沒有被重定向,我正在使用fiddler來監視,並且我可以看到Welcome.jsp的內容(/csm/home.action被映射到struts.xml中的Welcome.jsp)作爲響應,但不發生重定向。這裏有什麼解決方案?謝謝
更新這個工程,你也可以檢查我附加的方式sessiontoken
它是正確的嗎?
$('#submitDBtn').click(function(event){
event.preventDefault();
if(validate())
{
$.post("/csm/login.action",
{ emailaddress: document.getElementById("email_id").value,
projectid: document.getElementById("project_id").value },
function(xml)
{
if($(xml).find('isSuccess').text()=="true")
{
sessiontoken=$(xml).find('sessiontoken').text();
/*$.post("/csm/home.action", {
sessiontoken: sessiontoken
});*/
$('#launch').attr('action', '/csm/home.action?sessiontoken='+sessiontoken);
$('#launch').submit();
}
}
);
}
});
您無法使用ajax重定向您的頁面,您使用的最後一篇文章將帶您回到同一頁面。 – Vivek
@Vivek:你確定完美嗎?如果你有什麼來源,你能告訴我一些來源嗎? – abi1964
這就是Ajax使用的概念...如果我們不想重定向頁面,但仍想在該場景中填充數據,我們使用'ajax' .. – Vivek