如何从struts 2中的java脚本重定向到struts动作?

时间:2012-02-24 14:09:07

标签: javascript struts2

如何从java脚本重定向到struts动作?

如果脚本中的条件成功,那么我需要在config 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> 

3 个答案:

答案 0 :(得分:6)

试试吧

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 :(得分:3)

您可以使用点击事件

上的参数调用动作控制器
$('#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(); 
});

答案 2 :(得分:2)

尝试是:

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;
    }

}