actionsupport,struts2中的Action接口和Actionsupport接口各有什
本文目录索引
- 1,struts2中的Action接口和Actionsupport接口各有什么作用
- 2,Struts2 中继承ActionSupport类,都需要哪些jar包啊?
- 3,action类 一定要使用 actionsupport类吗
- 4,struts2为什么要继承ActionSupport
- 5,struts2 actionsupport如何进行用户登录验证
1,struts2中的Action接口和Actionsupport接口各有什么作用
1、Struts 2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类。 Struts2中通常直接使用Action来封装HTTP请求参数,因此,Action类里还应该包含与请求参数对应的属性,并且为属性提供对应的getter和setter方法。 2、ActionSupport已经实现了Action接口,还实现了Validateable接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。 Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。 Actionsupport还提供了一个getText(String key)方法还实现国际化,该方法从资源文件上获取国际化信息。 扩展资料:Action接口有: public static final java.lang.String SUCCESS = "success"; public static final java.lang.String NONE = "none"; public static final java.lang.String ERROR = "error"; public static final java.lang.String INPUT = "input"; public static final java.lang.String LOGIN = "login"; public abstract java.lang.String execute() throws java.lang.Exception; 参考资料:百度百科-ACTION
2,Struts2 中继承ActionSupport类,都需要哪些jar包啊?
如果单是继承ActionSuppor类 就需要xwork-2.1.2.jar
如果要搭建struts2 就要这六个包
struts2-core.jar——Struts2的核心包
xwork-core.jar——Command模式框架,WebWork和Struts2都基于xwork
commons-logging.jar——Java日志工具类包
commons-fileupload-1.2.1.jar——文件上传
freemarker.jar——模板引擎,一个基于模板生成文本输出的通用工具
ognl.jar——Object-Graph Navigation Language,表达式语言,用来获取和设置Java对象属性
可选包
antlr.jar——语法分析器
aopalliance.jar——AOP联盟标准接口
classworlds.jar——class对象管理
commons-beanutils.jar——Bean处理工具类包 这六个
3,action类 一定要使用 actionsupport类吗
因为ActionSupport是你整合了Spring之后用的,再Spring的包里,光用Struts2的话,Action是不用继续任何东西的,不过一般都会有一个baseaction,让你的action都去继承这个东西,里面带了点你比较常用的对象
public class BaseAction implements Serializable,RequestAware,SessionAware,ApplicationAware,ServletRequestAware,ServletResponseAware,ServletContextAware{
private static final long serialVersionUID = -8737956568774373323L;
protected Map request;
protected Map session;
protected Map application;
protected HttpServletRequest httpServletRequest;
protected HttpServletResponse httpServletResponse;
protected HttpSession httpSession;
protected ServletContext httpApplication;
public void setSession(Map session) {
this.session = session;
}
public void setRequest(Map request) {
this.request = request;
}
public void setApplication(Map application) {
this.application = application;
}
public void setServletRequest(HttpServletRequest httpServletRequest) {
this.httpServletRequest = httpServletRequest;
this.httpSession = httpServletRequest.getSession();
}
public void setServletResponse(HttpServletResponse httpServletResponse) {
this.httpServletResponse = httpServletResponse;
}
public void setServletContext(ServletContext servletContext) {
this.httpApplication = servletContext;
}
public String execute() throws Exception{
return "success";
}
}
追问:
但是,我查到ActionSupport的源码包是X-WORK里面的,按正常情况我可以调用的吧。另外我之前都可以直接导入的,只是不懂昨晚为什么就不行了
追答:
你用的x-work整合的啊,那个不熟,你用的myeclipse的话,按ctrl+shift+o可以控制在多个包的情况下,选择包的导入吧
4,struts2为什么要继承ActionSupport
struts2中的action可以继承ActionSupport,也可以不继承ActionSupport。
不继承ActionSupport的情况只需要有一个方法,返回String,即可,记住,在继承ActionSupport的情况下,必须有无参构造函数。
继承ActionSupport的好处在于:
1、能够使用struts预设的返回字符串,如SUCCESS,INPUT等等。
2、重写方法,更方便的实现验证、国际化等等功能。
3、与struts的功能结合紧密,方便开发。
5,struts2 actionsupport如何进行用户登录验证
在Action中做校验时,可以直接在execute()方法中进行一些简单的校验
但Actionsupport类给我们提供了方法validate(),使我们的校验更加清晰简单
当我们重写此方法时对应的struts.xml的result也要写上对应的
/input.jsp
经过测试,大致是这样的,validate方法执行校验不成功时后直接返回结果INPUT而不去执行execute方法了
当校验成功时才去执行execute方法,可以返回结果SUCCESS