Struts2结果视图

Struts2结果视图

标签: JAVA框架


一、回顾struts2

struts2简介
搭建开发环境
1 拷贝jar包
2 创建struts.xml配置文件(src目录下)
3 在web.xml中配置过滤器
三开发案例
用户发出请求 
四、执行过程图
五 struts2的配置
1 配置文件和加载顺序
default.properties
struts-default.xml
struts.xml
struts.properties
web.xml
2 constant配置
3package元素
 name 
extends:struts-default 
abstract 
namespace 
4 action 元素
name
class
method
六 动作类的书写
1 普通的类和方法(返回值都是String类型)
2 实现Action接口
3 继承ActionSupport(推荐使用这个)
七 动作方法的书写
public String XXX(){}
八 动作请求
1 使用通配符 * {1}
九 在动作类中访问ServletAPI
org.apache.struts2.ServletActionContext 

一 结果视图

1、局部和全局结果视图
 a、局部结果视图 
    <action name="user" class="com.cd.action.UserAction" method="addUser">
    <result>/success.jsp</result>--局部结果视图
    </action>

b、全局结果视图
多个动作对应同一个结果视图

<package name="default" extends="struts-default" abstract="true">
<global-results>
<result name="success">/success.jsp</result>
</global-results>
</package>
全局和局部的查找规则:
先查找局部,局部有满足条件的,返回局部的结果视图
局部不满足查找全局 全局也没有报错,全局有返回全局的结果视图
2 result 元素的配置
name 名字 它对应的是动作方法的返回值 默认不写是success
type 到达目标的形式 默认值是dispatcher(转发)

type 如果是 chain:用户转发到另一个动作

如果是dispatcher 代表的是用户转发到jsp页面

3 自定结果视图

生成验证码为例
步骤
1 定义类,直接或间接的实现com.opensymphony.xwork2.Result接口。
一般我们都继承org.apache.struts2.dispatcher.StrutsResultSupport类,实现doExecute方法
2 声明结果类型 在struts.xml文件中声明
<package name="p2" extends="struts-default">
<result-types>
<result-type name="captacha" class="com.cd.action.CaptachaResult"></result-type>
</result-types>
3 使用结果类型
<action name="captachaResult">
<result name="success" type="captacha">
<param name="width">150</param>
<param name="height">50</param>
</result>
</action>
4、封装请求参数(重要)
方式一  用Action动作类作为模型对象 具体代码见工程Day_struts2Params中的login.jsp和UserAction类
方式二 动作类和模型分开(推荐)
具体代码见 工程Day_struts2Params中login2.jsp和PersonAction、 Person类
方式三 (面试题,推荐)动作和模型分开
借助模型驱动 ModelDriven接口实现
具体代码见 工程Day_struts2Params中login3.jsp和CustomAction、 Custom类




5、静态参数注入
<action name="student" class="com.cd.action.StudentAction" method="login">
<!-- 静态参数注入 -->
<param name="name">游客</param>
<result>/index.jsp</result>
</action>

public class StudentAction extends ActionSupport {
private String name;

public String getName() {
    return name;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值