【strut2笔记】action的知识、路径…

关于action的知识


 

  •     <package name="default" namespace="/" extends="struts-default">
  •         <action name="hello" >
  •             <result >
  •              /hello.jsp
  •             </result>
  •         </action>
  • </package>    

 

Action中的属性 

Class属性
【strut2笔记】action的知识、路径问题

 

 

在上面的action中,属性多了一个class class指向了一个java文件,名字叫IndexAction1.java

 

这样,过滤器会去 执行这个IndexAction1.java文件中的 public String execute(){} 方法,比如:

Public String execute () {

Return success;

}

【strut2笔记】action的知识、路径问题 

只要是execute方法返回是字符串。

这个东西就会被当成一个action 

 

 

当我们没有给action配置class的时候,它默认执行自己的class :ActionSupport.class 中的execute方法。

该class在xwork的jar包中。

 

 

在实际开发中,我们execute对象所在的类,是使用继承ActionSupport  的方法来开发的,因为在ActionSupport中,有很多已经打包好的方法供我们调用。如下:

【strut2笔记】action的知识、路径问题 

 

Method属性

action属性中还有个method方法,前面说有指定class的时候就会去调用class中的execute方法。而这里,当action中出现method属性的时候,就不会去调用execute方法,而去调用method指定的方法:

【strut2笔记】action的知识、路径问题【strut2笔记】action的知识、路径问题 

但是这种方法不推荐用!因为会产生太多的action

 

下面看看推荐用的方法,叫动态方法调用(DMI

是在URL中动态指定方法。

用法:在urlaction后面加上“!方法名”

如:【strut2笔记】action的知识、路径问题,这是调用user namespace下的useraction,再调用指定class中的add方法。

这种方法简单,再多的方法都只要配一个action

 

 

 

 

Struc2中路径问题



当我们在使用strut2时,在被strut2调出的jsp中写一个连接:

index.jsp 主页  

点击这个连接的时候,它跳转的是strut2的连接,而不是jsp所在位置的连接。

 

Strut2中的路径是根据action的路径来确定,而不是根据当前jsp路径来确定,所以尽量不要使用相对路径,

 

虽然可以使用redirect方式解决,但不是必要的

 

解决方法简单,使用统一的绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)

 

或者使用myeclipse经常使用的,自动生成的指定basepath 

【strut2笔记】action的知识、路径问题【strut2笔记】action的知识、路径问题 

Path就是 项目的路径,如:/Strut2_learning/hello

Basepath就是 访问的路径如:http://localhost:8080 

Basepath+path+/ 就是完整访问路径:http://localhost:8080 /Strut2_learning/hello  /

 

或者还可以这样:

 

  • jsphead中加上:<base href=<%=basePath%>  /> ,前提是有自动生成的basepath

这样指定了base后,就可以使用在当前jsp中使用相对路径了:

 

  • <a href=index.jsp 主页  </a>

这样也是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值