JavaScript代码的核心在于动态修改表单元素的action属性,修改后的action属性为login!regist.action
实际上就是将该表单提交给login Action 的regist方法处理
对于使用动态方法调用的方法,例如regist方法,该方法的声明与系统默认的execute方法只有方法名不同,其它的都应该绝对相同
//开启系统的动态方法调用是通过设置struts.enable.DynamicMethodInvocation常量完成的
//设置该常量为true,将开启动态方法调用,否则将关闭动态方法调用
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<script type="text/javascript">
function regist(){
form = document.forms[0];
form.action = "login!regist.action";
form.submit();
}
</script>
</head>
<body>
<s:form action="login">
<s:textfield label="用户名" name="username"></s:textfield>
<s:textfield label="密码" name="password"></s:textfield>
<s:submit label="注册" οnclick="regist()" value="注册"></s:submit>
<s:submit label="登陆" value="登陆"></s:submit>
</s:form>
</body>
</html>