Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to redirect to struts action from java script in struts 2?

how to redirect to struts action from java script?

if condition in the script got success then i need to invoke one action in the config xml, otherwise no action invoking the control needs to stay at same page? please help on this?

Java Script

    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> 
like image 631
jcrshankar Avatar asked Dec 21 '22 01:12

jcrshankar


2 Answers

try it

window.location='youractionname'

This will redirect your window into your destination

If you want to sent your values to other page, then follow this method

<%@ 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>

What I modified is, changed the function calling from button to form submit. And removed the unwanted things from function

like image 188
Sarin Jacob Sunny Avatar answered Feb 24 '23 11:02

Sarin Jacob Sunny


you can call action controller with parameter on click event

$('#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(); 
});
like image 44
Anant T Avatar answered Feb 24 '23 10:02

Anant T