Action到底是什么?
Action是整个Web应用的核心,是业务控制器。是MVC中的C。负责流程调度。
Action是 Model 和 View 的中枢纽带。
通常Action中不包括业务逻辑。
Struts 2.0框架下的Action是对原始的HTML Form Action的封装。除了私有属性之外,还添加了许多实用的方法。
Action的接口和ActionSupport类
public abstract interface Action{
public static final String SUCCESS=“success”;
public static final String NONE=“none”;
public static final String ERROR=“error”;
public static final String INPUT=“input”;
public static final String LOGIN=“login”;
public abstract String execute() throws Exception
}
ActionSupport类:
public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable{
……
}
ActionSupport类中常用的方法:
public String getText(…);
public void addActionError(…);
public void addActionMessage(…);
public void addFieldError(…);
public String execute(…);
public void validate(…);
在Action中访问Servlet对象
Action通过ActionContext类来访问servlet对象,例如Application,Session对象等。
ActionContext 在Action运行期间保存了所需要的各种上下文信息。如session和URL传递的参数集合等。
使用:
ActionContext ac=ActionContext.getContext();
ac.getSession();
ac.getApplication();
Action直接访问Servlet API
HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
session.setAttribute("name",value);
通常不建议直接访问servlet相关的内容。
因为Struts框架不一定用于web开发。如果直接访问servlet相关内容,不利于程序的移植。
Action的配置
普通定义:
<action name=““ class=““ method=““ />
还可以定义 type 属性:
dispatcher: 默认type类型,视图采用JSP,请求参数保留。
freemarker:
redirect: 重定向到其他页面,请求参数丢失。
redirect-action: 重定向到其他Action
xslt: 整合XML和XSLT
plaintext: 页面的原始代码。
使用通配符:
<action name=“math_*_*” class=““ method=“{1}”>
<result>/{0}.jsp</result>
</action>
类型转换
类型转换和数据校验有什么不同?
类型转换在数据校验之前进行。
类型转换是系统自动完成的,不需要用户的额外工作。 数据校验还需要用户自行配置。
特殊类型转换要自己写。 类型转换不成功时,框架自动提示信息
本文暂时没有评论,来添加一个吧(●'◡'●)