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" class="org.wu.struts.action.UserAction">
<result name="suc">/suc.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
-----------------------------------------------------------------------------------------------------------------------
suc.jsp:
<center>
欢迎光临,${users.userid}
</center>
-----------------------------------------------------------------------------------------------------------------------
二、任意定义分隔符,通过在struts.xml中的配置来进行分发的处理。
<form action="user_login.action" method="post">
---------------------------------------------------------------------------------------
<struts>
<package name="login" namespace="/" extends="struts-default">
<action name="user_*" class="org.wu.struts.action.UserAction" method="{1}">
<!—- {1}表示取得在name中出现的第一个*,填写到method值中 -->
<result name="suc">/suc.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
分享到:
相关推荐
商业项目中使用Struts,并自由分发Struts 库。你也可以将Struts 组件集成到你的框架中,就 像他们是你自己编写的一样。详细情况, 参见Apache Software License , www.apache.org/LICENSE。 1.1.2. 为什么Struts 要...
04 Struts_04DispatchAction : 分发Action,根据设置的参数值提交到不同的方法进行处理业务,演示数学运算 05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,...
在Struts 2的技术框架,所有的请求均被截取组件先处理,再交由动作类分发 。Struts.xml是Struts 2的必须配置文件,放在WEB-INF/classes下面。 12.Struts Web应用框架是什么 它是开源框架:Struts 是 Apache 软件...
11.2.1 ActionServlet(分发器) 11.2.2 Action(控制器) 11.2.3 Action Mapping(映射) 11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用...
Struts的工作原理,如下图2所示: <br/> 控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet...
11.2.1 ActionServlet(分发器) 11.2.2 Action(控制器) 11.2.3 Action Mapping(映射) 11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用...
11.2.1 ActionServlet(分发器) 11.2.2 Action(控制器) 11.2.3 Action Mapping(映射) 11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用...
Struts作为系统的MVC框架,负责处理用户的请求和响应,将请求分发到相应的处理器进行处理,并将处理结果返回给用户。Hibernate作为持久层框架,负责实现对象关系映射(ORM),将Java对象与数据库表进行映射,简化了...
Struts2负责处理用户请求,将请求分发到相应的Action进行处理;Spring负责管理各个组件,如Service、DAO等,实现解耦和便于维护;Hibernate负责与MySQL数据库进行数据持久化操作,简化了数据库操作的复杂度。此外,...
火龙果软件工程技术中心 摘要设计规范只表示纯粹的想法;...例如,在Struts应用中,我推荐避免在Action类中使用实例变量,因为Action类是单例的,而且多个线程同时访问一个Action类实例是很平常的。其
Controller:ActionServlet,struts-config.xml,Action) Hibernate: Hibernate是一个持久层框架,它只负责与关系数据库的操作。 Spring: Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久...
11.2.1 ActionServlet(分发器) 11.2.2 Action(控制器) 11.2.3 Action Mapping(映射) 11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用...
│ 第20节:X-gen生成需要的Action.avi │ 第21节:通过X-gen生成商品模块.avi │ 第22节:通过X-gen生成购物车模块.avi │ 第23节:通过X-gen来生成订单和库存模块.avi │ 第24节:加入ehcache,把工程加入到Git....
Portlet与servlet/jsp中的桥梁 ...................................................................................... 12 用servlet生命周期事件 ..............................................................