struts2 中action的动态方法调用
(此处为转载)
JavaScript代码的核心在于动态修改表单元素的action属性,修改后的action属性为login!regist.action
实际上就是将该表单提交给login Action 的regist方法处理
对于使用动态方法调用的方法,例如regist方法,该方法的声明与系统默认的execute方法只有方法名不同,其它的都应该绝对相同
(此处为个人总结)
1、以最简单的登陆、注册为例:
login.jsp页面:第一种写法 function ()的方法在前,需要再次提交submit();
<head>
<title>登录页面</title>
<script type="text/javascript">
function regist()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action = "login!regist";
form.submit();
}
</script>
</head>
<body>
<s:form action="login">
<s:textfield name="username" key="user"/>
<s:textfield name="password" key="pass"/>
<s:submit key="login"/> <s:submit value="注册" οnclick="regist();"/>
</s:form>
</body>
login.jsp的页面:第二种写法,function()方法在提交的表单之后,无需再次提交submit();
<table width="300" align="center">
<form action="login" method="post">
<tr>
<td>用户名:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="text" name="password"/></td>
</tr>
<tr>
<td><input type="submit" value="登录"/></td>
<td><input type="submit" value="注册"
οnclick="regist();"/></td>
</tr>
</form>
<table>
<script type="text/javascript">
function regist()
{
//获取页面的第一个表单
targetForm = document.form[];
//动态修改表单的action属性
targetForm.action = "login!regist";
}
</script>
2、actin 的实现类就不再阐述啦;(只要在增加一个 regist()方法即可)。