首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2 中的Action散发

2012-10-29 
Struts2中的Action分发Struts2? 中的Action分发??????? Struts2中Action不需要单独继承任何的特殊Action,

Struts2 中的Action分发

Struts2? 中的Action分发


??????? Struts2中Action不需要单独继承任何的特殊Action,当继承ActionSupport就支持分发,同时validate验证方法也支持分发,实现分发有以下两种形式:
通过Struts2自定义的分发字符(!)完成Action分发:
action格式为:action名!方法名.action。
validate验证方法则为:validate+方法名,分发方法名首字母大写。如:validateLogin()
index.jsp:
<center>
??? ?<s:actionerror name="error"/>
??? ?<s:fielderror />
?????? ??? <form action="user!login.action" method="post">
??? ????????? ?User ID:<input type="text" name="user.userid"/>
??? ?????????????????????? ?<br/>${fieldErrors["userid"][0]}<br/>
???????????????PassWord:<input type="password" name="user.password"/>
??? ??????????????????????? <br/>${fieldErrors["password"][0]}<br/>
??? ??????????? <input type="submit" value="登录"/>
??? ?????????? ?<input type="reset" value="重置"/>
??? ????? </form>
??? </center>

--------------------------------------------------
在Action中不再覆写execute方法,直接定义一个login方法,而且该方法返回值类型为String。
UserAction.java:
?public class UserAction extends ActionSupport {
??private User user = new User();
??public User getUser() {
???return user;
??}
??public void setUser(User user) {
???this.user = user;
??}
??public String login() {
???if (user.getUserid().equals("Hello")&& user.getPassword().equals("12345")) {
????ServletActionContext.getRequest().getSession().setAttribute("users", user);
????return "suc";
???}
???super.addActionError("用户名或密码错误!");
???return "input";
??}
??public void validateLogin() {
???if (user.getUserid() == null || user.getUserid().trim().equals("")) {
????super.addFieldError("userid", "用户ID不能为空!");
???}
???if (user.getPassword() == null || user.getPassword().trim().equals("")) {
????super.addFieldError("password", "密码不能为空!");
???}
??}
?}
------------------------------------------------
struts.xml:
?<struts>
??<package name="login" namespace="/" extends="struts-default">
???<action name="user" namespace="/" extends="struts-default">
???<action name="user_*" method="{1}">
????<!—- {1}表示取得在name中出现的第一个*,填写到method值中? -->
????<result name="suc">/suc.jsp</result>
????<result name="input">/index.jsp</result>
???</action>
??</package>
?</struts>?

热点排行