struts 笔记 action namespace

15164652_PjtZ.png

Struts请求处理流程

请求先被struts过滤器拦截下来,然后在struts中做处理,如果处理中未发现请求的地址,再发回tomcat服务器 tomcat处理


自定义action

给在struts.xml中 action类添加class属性,指定处理的类,默认会调用这个类的execute方法,这个类可以是一个普通的java类。

如果不配置class,默认的用actionSupport来处理。

还可以实现action接口来定义一个action实现类,不经常用。

如果想运行自定义方法而不是execute方法,那么直接可以在action定义该方法,这个方法,的返回值是String类型,修饰字符串类型public

如果返回字符串是’xxx’ ,那么struts会在该action中寻找,resultname’xxx’,如果没有,会有错误。

action 中配置method 属性 ,指定调用方法。

struts2中每次请求都会创建一个action对象,所以不存在线程安全问题。


DMI 动态方法调用

用于开发或者企业内部软件使用,因为很容易就会让人发现是用struts,所以一般外部不用。

struts.xml 配置

<constant name="struts.enable.DynamicMethodInvocation" value="true" />



通配符

<action name="*-*" class="struts.demo.DemoAction">
      <result name="{1}">/{2}.jsp</result>
</action>


这里的*会按顺序替换{1},{2},例如,请求的action user-input

{1}user {2}input 减少result的配置


NameSpace

Namespace决定了访问路径,默认为””,可以接受所有路径的action

Struts请求action默认带后缀名action,可以不写。

Namespcce可以写为”/”, ”/xxx”,”/xxx/yy”,对应的action访问路径为/index.action.

Namespace一般用模块来进行命名

Package 标签的作用和java中的package作用一致,区分重复的情况,package的名字与namespace的名字一般是一致的,以模块的名称来命名


路径问题

Struts中,相对路径是从action算起,所以使用绝对路径。

JSP’/’的地址表示的是服务器根地址,不是应用根地址

绝对路径的获取

String  basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort + "/" + request.getContextPath() ;



转载于:https://my.oschina.net/u/1432304/blog/279942

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值