Struts2 学习笔记 —— 03 —— Action
2014-01-10 18:35
417 查看
首先说一个小问题
创建JSP文件的时候,默认的编码格式是ISO-8859-1
在Window —— Preference中,搜索JSP,将Encoding改为Chinese,National Standard
这样,默认创建JSP文件时编码格式就会自动设为GB18130了
下面是Action的介绍:
具体视图的返回可以由用户自己定义的Action来决定
具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
具体Action的实现可以是一个普通的java类,里面有public String execute方法即可
或者实现Action接口
不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
即Action的实现有三种方法:
1、建立一个普通的类,包含public String execute方法
2、实现Action接口
3、继承ActionSupport
第一种方式:
第二种方式:
第三种方式:
配置struts.xml
说明:
1、指定Action对应的class的流程变化(对比笔记01图)
当指定了action的class时,会找到这个class的对象
这里struts1和struts2的区别是struts1的这个IndexAction是一开始就创建的,
并且整个程序就这一个对象,所有访问都访问这个对象,会产生线程同步的问题
而struts2则是每次访问对象的时候都去new一个对象
当创造完后,会调用对象的execute方法,
方法执行完后,会返回一个String类型的数据,如success
然后根据这个返回值,找到对应的result,就能执行对应的jsp了
result不配置的时候,默认接收的返回值就是success(可以省略,就如同01中的示例代码了)
如果actiion不配置class的话,默认去调用ActionSupport这个类
想要看ActionSupport的源码,需要绑定xwork的源码
2、struts1与struts2的区别
struts1的Action是与具体的struts的环境要绑定的,而且离不开Servlet环境
而struts2一个不同Java类就可以了,想测试也很简单,写一个测试类就可以了
创建JSP文件的时候,默认的编码格式是ISO-8859-1
在Window —— Preference中,搜索JSP,将Encoding改为Chinese,National Standard
这样,默认创建JSP文件时编码格式就会自动设为GB18130了
下面是Action的介绍:
具体视图的返回可以由用户自己定义的Action来决定
具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
具体Action的实现可以是一个普通的java类,里面有public String execute方法即可
或者实现Action接口
不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
即Action的实现有三种方法:
1、建立一个普通的类,包含public String execute方法
2、实现Action接口
3、继承ActionSupport
第一种方式:
public class IndexAction1 { public String execute() { return "success"; } }
第二种方式:
public class IndexAction2 implements Action { @Override public String execute() throws Exception { return SUCCESS; } }
第三种方式:
public class IndexAction3 extends ActionSupport { @Override public String execute() throws Exception { return SUCCESS; } }
配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="front" namespace="/" extends="struts-default"> <action name="IndexAction1" class="com.demo.struts2.IndexAction1"> <result name="success"> /IndexAction1.jsp </result> </action> <action name="IndexAction2" class="com.demo.struts2.IndexAction2"> <result name="success"> /IndexAction2.jsp </result> </action> <action name="IndexAction3" class="com.demo.struts2.IndexAction3"> <result name="success"> /IndexAction3.jsp </result> </action> </package> </struts>
说明:
1、指定Action对应的class的流程变化(对比笔记01图)
当指定了action的class时,会找到这个class的对象
这里struts1和struts2的区别是struts1的这个IndexAction是一开始就创建的,
并且整个程序就这一个对象,所有访问都访问这个对象,会产生线程同步的问题
而struts2则是每次访问对象的时候都去new一个对象
当创造完后,会调用对象的execute方法,
方法执行完后,会返回一个String类型的数据,如success
然后根据这个返回值,找到对应的result,就能执行对应的jsp了
result不配置的时候,默认接收的返回值就是success(可以省略,就如同01中的示例代码了)
如果actiion不配置class的话,默认去调用ActionSupport这个类
想要看ActionSupport的源码,需要绑定xwork的源码
2、struts1与struts2的区别
struts1的Action是与具体的struts的环境要绑定的,而且离不开Servlet环境
而struts2一个不同Java类就可以了,想测试也很简单,写一个测试类就可以了
相关文章推荐
- struts2 的学习笔记(四) Struts的Action的创建方式
- Struts2第九讲学习笔记Action的三种实现方式,两种驱动方式
- struts2学习笔记----action配置的各项默认值
- Struts2 学习笔记 —— 09 —— Action接收参数(3)
- 【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置
- Struts2学习笔记5_Action的搜索顺序
- Struts2学习笔记-03
- Struts2_学习笔记(二)--------Namespace、Action、Path、
- 【ssh学习笔记】struts2的action与Spring
- Struts2 学习笔记 —— 07 —— Action接收参数(1)
- [struts2学习笔记] 第六节 struts2依赖的jar包还有Could not find action or result 错误解决
- day27_struts2のPPT学习3——03 访问Action.ppt
- 学习笔记:struts2的package,action,result标签解析
- struts2学习笔记--ActionContext对象
- Struts2 学习笔记——Action开发详解
- struts2学习笔记-----action名称的搜索顺序
- Struts2学习笔记之struts.xml配置常量和Action处理流程
- [struts2学习笔记] 第六节 struts2依赖的jar包还有Could not find action or result 错误解决
- Struts2 学习笔记 —— 06 —— ActionWildCard 通配符
- [struts2学习笔记] 第六节 struts2依赖的jar包还有Could not find action or result 错误解决