您的位置:首页 > 编程语言 > Java开发

整理:struts2里如何给不同的按钮赋予不同的处理逻辑

2010-07-03 16:44 471 查看
以一个登录注册场景为例:

1.使用actionName!methodName.action 即动态方法

jsp

<mce:script type="text/javascript"><!--
function regist() {
loginForm.action = "Login!register.action";
loginForm.submit();
}

function login() {
loginForm.action = "Login!login.action";
loginForm.submit();
}
// --></mce:script>

<s:form name="loginForm" action="" method="post">
<s:textfield name="userid" label="用户名"></s:textfield>
<s:password name="passwd" label="密码"></s:password>
<br />
<input type="button" onclick="login()" value="登录" />
<input type="button" onclick="regist()" value="注册" />
</s:form>


struts.xml

<struts>
<package name="struts2" extends="struts-default">
<action name="Login" class="com.zt.action.LoginAction">
<result>/welcome.jsp</result>
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>


LoginAction.java

public String login() throws Exception {
System.out.println("login() is invoked!");
return SUCCESS;
}
public String register() throws Exception {
System.out.println("register() is invoked!");
return SUCCESS;
}


2.为每个action指定method

jsp

<mce:script type="text/javascript"><!--
function regist() {
loginForm.action = "Login.action";
loginForm.submit();
}

function login() {
loginForm.action = "Regist.action";
loginForm.submit();
}
// --></mce:script>

<s:form name="loginForm" action="" method="post">
<s:textfield name="userid" label="用户名"></s:textfield>
<s:password name="passwd" label="密码"></s:password>
<br />
<input type="button" onclick="login()" value="登录" />
<input type="button" onclick="regist()" value="注册" />
</s:form>


struts.xml

<struts>
<package name="struts2" extends="struts-default">
<action name="Login" class="com.zt.action.LoginAction" method="login">
<result>/welcome.jsp</result>
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="Regist" class="com.zt.action.LoginAction" method="register">
<result>/welcome.jsp</result>
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>


LoginAction.java同方法1.

3. 使用*通配符

jsp

<mce:script type="text/javascript"><!--
function regist() {
loginForm.action = "loginAction.action";
loginForm.submit();
}

function login() {
loginForm.action = "registerAction.action";
loginForm.submit();
}
// --></mce:script>

<s:form name="loginForm" action="" method="post">
<s:textfield name="userid" label="用户名"></s:textfield>
<s:password name="passwd" label="密码"></s:password>
<br />
<input type="button" onclick="login()" value="登录" />
<input type="button" onclick="regist()" value="注册" />
</s:form>


struts.xml

<struts>
<package name="struts2" extends="struts-default">
<action name="*Action" class="com.zt.action.LoginAction"
method="{1}">
<result>/welcome.jsp</result>
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>


这里需要注意的是method必须是="{1}",有的教程上写="{0}",这样会找不到方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: