2012-02-24 70 views
4

如何從java腳本重定向到struts動作?如何在struts 2中將java腳本重定向到struts動作?

如果腳本條件得到了良好的話,我需要調用的配置XML一個動作,否則無動作調用控件需要留在同一頁?請幫忙嗎?

Java腳本

function displayDate() 
{ 

     var x=document.getElementsByName("userName") 
    if(x = "shan") 
    { 
    alert("shankarasd"); 
    document.myForm.action ="/setUpForInsertOrUpdate"; 
    document.myForm.submit(); 
    } 

} 

HTML

<html> 
     <body> 
     <s:form action="HelloWorld" > 
      <s:textfield name="userName" label="User Name" /> 
      <s:submit onclick="displayDate()" /> 
     </s:form> 
    </body> 
</html> 

config.xml中

<struts> 
    <package name="default" extends="struts-default"> 
     <action name="HelloWorld" class="vaannila.HelloWorld.HelloWorld"> 
      <result name="SUCCESS">/success.jsp</result> 
     </action> 
     <action name="setUpForInsertOrUpdate" method="setUpForInsertOrUpdate" class="vaannila.HelloWorld.HelloWorld"> 
      <result name="SUCCESS1">/success1.jsp</result> 
     </action> 
     <action name="back" method="back" class="vaannila.HelloWorld.HelloWorld"> 
      <result name="SUCCESS2">/success.jsp</result> 
     </action> 
    </package> 
</struts> 
+1

調用動作控制器參數如果要比較的'm的值'到'1',你絕對不想使用'='(這是賦值操作符)。而是使用'=='。 – 2012-02-24 14:11:25

+0

它可以是任何值,我只是舉了一個例子。 – jcrshankar 2012-02-24 14:17:35

+0

實際上不是檢查m == 1,我會從用戶那裏獲取值並用於檢查。 – jcrshankar 2012-02-24 14:19:09

回答

5

嘗試

window.location='youractionname' 

這將你的窗口重定向到您的目的地

如果你想發送你的價值觀到其他頁面,然後按照這個方法

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<script type="text/javascript"> 

function displayDate() 
{ 

    var x=document.getElementsByName("userName") 
if(x =="shan") 
{ 
alert("Redirecting"); 
return true; 
} 
else{ 
alert("Not Redirecting"); 
return false; 
} 
} 
</script> 

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
    <s:form action="HelloWorld" onsubmit="displayDate();"> 
     <s:textfield name="userName" label="User Name" /> 
     <s:submit onclick="displayDate()" /> 
    </s:form> 
</body> 
</html> 

我修改了什麼,改變了功能的按鈕調用到表單提交。 並已刪除功能不需要的東西

+1

我相信OP已經找到了答案的解決方案,因爲他在comment.Still很好的解決方案中提到:) – 2012-02-27 09:20:25

+0

@UmeshAwasthi,這是事實,他發現代碼重定向他的網頁。 但是從他的問題來看,很明顯他想要發送一些表格值,而這是他找到的解決方案所不可能的。 (邏輯錯誤):-) – 2012-02-27 09:25:56

+0

只回答後,其實我看到他的評論 – 2012-02-27 09:26:52

1

嘗試是:

function displayDate(){ 

    var x=document.getElementsByName("userName") 
    if(x = "shan") 
    { 
    alert("shankarasd"); 
    document.myForm.action ="/setUpForInsertOrUpdate"; 
    document.myForm.submit(); 


    location.href = "nameaction.action?parameter1="+value1+"&parameter2="+value2; 
    } 

} 
2

您可以點擊事件

$('#loginSubmit').click(function(){ 

var Username= take the value for text fields 

var Password =take the value for text fields 
var url = "login"; 

var FormD = '<form method="post" action="' + url + '" id="frmSubmit" autocomplete="off">'; 

FormD += '<input type="hidden" name="Username" value="' + Username+ '" />'; 

FormD += '<input type="hidden" name="Password" value="' + Password+ '" />'; 

FormD += '</form>'; 
$("body").append(FormD); $("#frmSubmit").submit(); 
}); 
+0

按鈕點擊事件時,可以使用此代碼。 – 2017-03-03 05:41:18