1.Struts2中获取request,response,session对象的方法
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
HttpSession session==ServletActionContext.getRequest().getSession();
2.Struts2动态调用的方法:通配符方式。(推荐方式)
第一个代替{1},第二个代替{2},result里的name是Action的返回值,action的里method是Action里的方法名,调用某个方法时最后目标就输入 {1}{2}.action;这样可以访问多个Action里的方法
<action name="**" method="{2}" class="com.imooc.action.{1}Action">
<result>/result.jsp</result>
<result name="add">/{2}.jsp</result>
<result name="update">/{2}.jsp</result>
</action>
3.action接收JSP页面传输的参数:
【1、使用action类的属性接收参数:
a.在action类中定义成员变量,并添加get、set方法;
b.在JSP页面中Form表单的Action属性指向对应的action,input控件的name属性和Action类中定义的成员变量一致。
【2、使用DomainModel接收参数:
a.创建一个实体javaBean类,定义成员变量,并添加get、set方法;
b.在action类中以之前创建的实体类(如user)作为成员变量,并添加get、set方法,此实体类不需要实例化对象;
c.在JSP页面中Form表单的Action属性指向对应的action,input控件的name属性需要指定到实体类的属性(如name=user.username);
【3、使用ModeDriven接收参数:
a.创建一个实体javaBean类,定义成员变量,并添加get、set方法;
b.在action类中以之前创建的实体类(如User)作为成员变量,该实体类需要实例化对象;
c.action类实现ModelDriven<实体类>接口,重写getModel方法,使该方法返回实体类的实例化对象;
d.在JSP页面中Form表单的Action属性指向对应的action,input控件的name属性需要指定到实体类的属性(如name=username);
4.在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>
<package name="default" namespace="/" extends="struts-default">
<!-- 拦截器注册 -->
<interceptors>
<interceptor name="自定义" class="引入拦截器的类"></interceptor>
</interceptors>
<!-- acition注册 -->
<action name=" " class=" ">
<result>success.jsp</result>
<!--拦截器引用,要放在action里面-->
<interceptor-ref name="此处的名字与上面的相同">
</interceptor-ref>
</action>
</package>
</struts>
<!-- 引用拦截器的类要继承AbstractInterceptor,实现intercept()方法
-->
共同学习,写下你的评论
评论加载中...
作者其他优质文章