Action的自定义方法
自定义方法的调用方式:
1. 在struts.xml文件中通过method属性指定方法名
2. 使用动态方法调用方式(DMI)
3. 使用提交按钮的method属性
4. 使用通配符配置Action
- 在struts.xml文件中通过method属性指定方法名
- name - 配置包时必须指定name属性,如果其他包要继承该包,必须通过该属性进行引用,name属性值不能有相同 。
- namespace - 包的namespace属性用于定义该包的命名空间。
- extends - 通常每个包都应该继承struts-default包, struts-default包是由struts内置的,它定义了struts2内部的众多拦截器和Result类型。
//UserAction.java
public String login() {
UserService userService = new UserService();
if (userService.login(loginUser)) {
return "success";
}
return "fail";
}
public String register() {
UserService userService = new UserService();
if (userService.register(loginUser)) {
return "registerSuccess";
}
return "registerFail";
}
<!--struts.xml-->
<package name="strutsBean" extends="struts-default" namespace="/">
<action name="login" class="cn.edu.zjut.action.UserAction" method="login">
<result name="success">/loginSuccess.jsp</result>
<result name="fail">/loginFail.jsp</result>
</action>
<action name="register" class="cn.edu.zjut.action.UserAction" method="register">
<result name="registerSuccess">/regSuccess.jsp</result>
<result name="registerFail">/regFail.jsp</result>
</action>
</package>
<%--login.jsp--%>
<form action="user" method="login">
请输入用户名:<input type="text" name="loginUser.account"/><br>
请输入密码:<input type="password" name="loginUser.password"/><br>
<input type="submit" value="登陆">
</form>
- 使用动态方法调用方式(DMI)
- 可以在url地址中动态调用Action方法
UserAction.java与上同
<!--struts.xml-->
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<package name="strutsBean" extends="struts-default" namespace="/">
<action name="user" class="cn.edu.zjut.action.UserAction">
<result name="success">/loginSuccess.jsp</result>
<result name="fail">/loginFail.jsp</result>
<result name="registerSuccess">/regSuccess.jsp</result>
<result name="registerFail">/regFail.jsp</result>
</action>
</package>
</struts>
<%--login.jsp--%>
<form action="<%=path%>/user!login" method="post">
请输入用户名:<input type="text" name="loginUser.account"/><br>
请输入密码:<input type="password" name="loginUser.password"/><br>
<input type="submit" value="登陆">
</form>
- 使用提交按钮的method属性
UserAction.java和struts.xml与DMI方式相同
<%--login.jsp--%>
<s:form action="user" method="post">
<s:textfield name="loginUser.account" key="login.account.label"/>
<s:password name="loginUser.password" key="login.password.label"/>
<s:submit name="submit" key="login.submit.button" method="login"/>
</s:form>
必须用在标签中。
- 使用通配符配置Action
参考这篇文章