Struts2学习笔记1

struts2 引入了拦截器的概念,结合各种过滤器获取URL,而struts1使用servlet去获取URL,struts2与struts1的最大区别在于,struts1是单实例的(所有请求共享一个实例),struts2是多实例的(一个请求对应一个实例),还引入了“值栈”的概念,达到了与servletAPI解藕的目的!struts2还可以使用POJO类,

struts中配置文件优先级及加载顺序:
优先级:Web.xml>struts.properties>struts.xml>default.properties>struts-default

加载顺序: struts-default->struts-plugin->struts.xml

重定向(redirect):请求action时重新定向到某一页面(jsp),但是会丢失请求数据(url改变)。

Global-results 用来当多个action返回值相同时,都可以访问到该results对应的页面。(用来配置多个action共享的结果集)
Default-action-ref    通常用来防止URL输入错误,显示404,该页面对用户不友好。

如果的action类中不是execute方法,若想访问该类的其他名字的方法,一可以在result配置中加入method=“方法名”,或者在url中action后面加上!+方法名
记住:若采取后一种动态调用方法,需要在default.propertities中struts.enable.dynamicethodinvocation=true, 默认为false。

还可以使用通配符进行配置,例如在action的name属性中可以使用“*”去命名,那么在其他属性中使用{1}、{2}、{0}取出URL的路径

例如:

name=“user_*"{1}取出第一个*号的值若url=/user_add,则{1}=add
name=“*_*"{1}取出第一个*号的值,{2}取出第二个*号的值
若url=/user_add,则{1}=user,通常出现在class属性中
{2}=add,通常出现在method属性中
{0}取出的就是user_add  
   


Struts2总体架构:
为了任何的 Struct 2 项目,我们将必须创建四个组件:
序号组件 & 描述
1
动作
创建一个包含完整的业务逻辑和控制用户,模型和视图之间的交互的动作类。
2
拦截器
如果需要,则创建拦截器,或者使用已存在的拦截器。这是控制器的部分。
3
视图
创建一个与用户交互的 JSPs,它接受输入并且显示最后的信息。
4
配置文件
创建连接动作,视图和控制器的配置文件。这些文件是 struts.xml,web.xml,struts.properties。
接受请求参数

1.属性驱动

直接在action的POJO类中声明与表单元素一致的属性,并生成匹配的get、set方法,struts2会自动将表单数据提交给action中,并直接给响应的属性赋值。


2.模型驱动
struts2提供了一个模型驱动的拦截器,要使用此模型驱动填写参数,需要实现modeldriver泛型接口,例如:implemens ModelDriver<User>,重现getModel方法,里面是对象的实例化判断。可以没有对象的get、set方法


3.域驱动
就是把实体中的对象作为action的属性。但是在jsp页面中name属性就需要更改为实体类名+属性名 例如user.usernmae user.password,必须有对象的get、set方法。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值