深入Struts2
2016-06-22 09:38
417 查看
一、访问Servlet API
servlet API指HttpServletRequest、HttpServletResponse、ServletContext。具体对应就是request,session,application。
struts2提供了三种访问方式
1、ActionContext
方法中创建ActionContext对象
ActionContext act = ActionContext.getContext();
act.getSession().get("name");
2、通过实现ServletRequestAware、ServletResponseAware来实现
获得request、response对象
3、通过ServletActionContext
它是一个工具类,提供了以下静态方法。
statci PageContext getPageContext();
static HttpServletRequest getRequest();
static HttpServletResponse getResponse();
static ServletContext getServletContext();
二、Action的搜索顺序
1、判断package对应的namespace是否存在,若存在namespace下查找Action,若没找到报错.
2、若对应的namespace不存在,则逐层往上查找,直到找到,若没找到报错。
三、动态方法调用,三种
动态调用方法用来解决一个Action对应多个方法的问题。
三种解决方法:
1、method方法
通过在<action>标签中method属性,指定调用action的哪个方法。
2、感叹号方式 (不推荐)
要启用这种方式,需要配置参数
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
3、通配符方式
<action name="helloworld_*" method="{1}"> 一个*对应{1}的一个参数。
四、指定多个配置文件
struts2为了方便配置管理,可以将配置内容放到多个配置文件中,最终在struts.xml通过<include file="login.xml"></include>方式引入就可以了。
为了统一编码,最好每个配置文件中都加上,<constant name="struts.i18n.encoding" value="UTF-8"></constant>
五、默认Action
struts2为了用户友好体验,可以指定默认的action
<default-action-ref name="index"></defalut-action-ref>
其中index为对应action的名字
六、struts后缀
可以在struts.xml通过
<constant name="struts.action.extension" value="action"></constant>这种方式设置
还可以在web.xml的过滤器配置中通过配置初始化参数的方式配置
七、接收参数
struts2可以通过以下几种方式接收参数
1、使用action属性接收参数
这种方式是在Action中定义接收参数名的属性,并定义该属性的get和set方法。
2、通过domain model方式
这种方式需要新建一个类,将接收参数以属性的方式定义在该类中,并提供相应的get和set方法
在action中让该类作为action的一个属性,并提供该属性的get和set方法。
在Jsp页面传递的参数,必须是一下方式:例如:user.username,其中User类 username是其属性,Action中有User user 属性.
3、通过实现ModelDriven<类>接口
Action实现ModleDriven<类>接口
Action中定义 类的属性,并且进行实例化 , 不能在Action定义该属性的get、set方法。
该方法也可以接受复杂类型参数。
例如:定义 List<String> bookList 属性
JSP页面 <input type="text" name="bookList[0]"/>
例如 :定义 List<User> userList 属性
JSP页面 <input type="text" name="userList[0].username">
八、处理结果类型
struts2继承ActionSupport,有一下五种返回结果:
SUCCESS:正确执行,返回相应视图
NONE:正确执行,但不返回任何视图
ERROR:错误,跳转到错误页面
LOGIN:用户没登录,跳转到登录页
INPUT:从前端视图获取参数,在后端验证,若验证参数不通过,将自动返回该前端视图。
INPUT的实现:
要实现自动跳转,一定要实现validate()方法,并将要做的验证放到validate()方法中
当发生验证错误时,通过this.addFiledError("username","用户名不能为空")这种方式添加错误信息。
JSP页面接收错误信息:<s:fielderror name="username"></s:filederror>
servlet API指HttpServletRequest、HttpServletResponse、ServletContext。具体对应就是request,session,application。
struts2提供了三种访问方式
1、ActionContext
方法中创建ActionContext对象
ActionContext act = ActionContext.getContext();
act.getSession().get("name");
2、通过实现ServletRequestAware、ServletResponseAware来实现
获得request、response对象
3、通过ServletActionContext
它是一个工具类,提供了以下静态方法。
statci PageContext getPageContext();
static HttpServletRequest getRequest();
static HttpServletResponse getResponse();
static ServletContext getServletContext();
二、Action的搜索顺序
1、判断package对应的namespace是否存在,若存在namespace下查找Action,若没找到报错.
2、若对应的namespace不存在,则逐层往上查找,直到找到,若没找到报错。
三、动态方法调用,三种
动态调用方法用来解决一个Action对应多个方法的问题。
三种解决方法:
1、method方法
通过在<action>标签中method属性,指定调用action的哪个方法。
2、感叹号方式 (不推荐)
要启用这种方式,需要配置参数
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
3、通配符方式
<action name="helloworld_*" method="{1}"> 一个*对应{1}的一个参数。
四、指定多个配置文件
struts2为了方便配置管理,可以将配置内容放到多个配置文件中,最终在struts.xml通过<include file="login.xml"></include>方式引入就可以了。
为了统一编码,最好每个配置文件中都加上,<constant name="struts.i18n.encoding" value="UTF-8"></constant>
五、默认Action
struts2为了用户友好体验,可以指定默认的action
<default-action-ref name="index"></defalut-action-ref>
其中index为对应action的名字
六、struts后缀
可以在struts.xml通过
<constant name="struts.action.extension" value="action"></constant>这种方式设置
还可以在web.xml的过滤器配置中通过配置初始化参数的方式配置
七、接收参数
struts2可以通过以下几种方式接收参数
1、使用action属性接收参数
这种方式是在Action中定义接收参数名的属性,并定义该属性的get和set方法。
2、通过domain model方式
这种方式需要新建一个类,将接收参数以属性的方式定义在该类中,并提供相应的get和set方法
在action中让该类作为action的一个属性,并提供该属性的get和set方法。
在Jsp页面传递的参数,必须是一下方式:例如:user.username,其中User类 username是其属性,Action中有User user 属性.
3、通过实现ModelDriven<类>接口
Action实现ModleDriven<类>接口
Action中定义 类的属性,并且进行实例化 , 不能在Action定义该属性的get、set方法。
该方法也可以接受复杂类型参数。
例如:定义 List<String> bookList 属性
JSP页面 <input type="text" name="bookList[0]"/>
例如 :定义 List<User> userList 属性
JSP页面 <input type="text" name="userList[0].username">
八、处理结果类型
struts2继承ActionSupport,有一下五种返回结果:
SUCCESS:正确执行,返回相应视图
NONE:正确执行,但不返回任何视图
ERROR:错误,跳转到错误页面
LOGIN:用户没登录,跳转到登录页
INPUT:从前端视图获取参数,在后端验证,若验证参数不通过,将自动返回该前端视图。
INPUT的实现:
要实现自动跳转,一定要实现validate()方法,并将要做的验证放到validate()方法中
当发生验证错误时,通过this.addFiledError("username","用户名不能为空")这种方式添加错误信息。
JSP页面接收错误信息:<s:fielderror name="username"></s:filederror>
相关文章推荐
- JQuery+Strusts1.x无刷新登录
- java struts常见错误以及原因分析
- Struts之logic标签库详解
- 通过实例深入学习Java的Struts框架中的OGNL表达式使用
- Java的Struts框架中append标签与generator标签的使用
- struts2的select标签用法实例分析
- SSH框架网上商城项目第20战之在线支付平台
- 在Java的Struts框架下进行web编程的入门教程
- 详解Java的Struts框架中注释的用法
- java中struts 框架的实现
- 利用Java的Struts框架实现电子邮件发送功能
- 在Java的Struts框架中ONGL表达式的基础使用入门
- 详解Java的Struts框架中栈值和OGNL的使用
- Java的Struts框架简介与环境配置教程
- Java的Struts框架中的if/else标签使用详解
- 简单说明Java的Struts框架中merge标签的使用方法
- 详解Java的Struts框架中上传文件和客户端验证的实现
- Java的Struts框架中Action的编写与拦截器的使用方法
- sprng和struts有什么区别?
- Java的Struts框架中<results>标签的使用方法