002 - struts2 _ action基本配置_路径问题

1)action基本配置 

 

//IndexAction。java

public class IndexAction extends ActionSupport {

 public String execute() {
  return "success";
 }
}

 

//对应的struts.xml

 <package name="front" extends="struts-default" namespace="/">
     <action name="index" class="front.action.IndexAction"  method="...">
                    <result name="success">/ActionIntroduction.jsp</result>
      </action>
</package>
 
Action执行的时候并不一定要执行execute方法
可以在配置文件中配置Action的时候用method=来指定执行哪个方法
也可以在url地址中动态指定(动态方法调用DMI)(推荐)
 
DMI(动态方法调用)方式:
  <package name="user" extends="struts-default" namespace="/user">
           <action name="user" class="user.action.UserAction">
                  <result>/user_add_success.jsp</result>
               </action>
  </package>
 
链接写法:<a href="user/user!add">添加用户</a>
 
 
使用通配符配置action方式:
 
<package name="actions" extends="struts-default" namespace="/actions">
           <action name="Student*" class="action.StudentAction" method="{1}">
                       <result>/Student{1}_success.jsp</result>
        </action>             
            <action name="*_*" class="action.{1}Action" method="{2}">
                        <result>/{1}_{2}_success.jsp</result> 
           </action>
</package>           其中"{1}”表示第1个*号,"{2}”表示第2个*号,以此类推
 
 
 
 
 

2)  路径问题

struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径
虽然可以用redirect方式解决,但redirect方式并非必要。

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

或者使用myeclipse经常用的,指定basePath

 

解决办法

加入: 

<%
      String path = request.getContextPath();
      String basePath = request.getScheme()+"://"+

                                                  request.getServerName()+":"+request.getServerPort()+path+"/";
%>

 在<head>标签后加入

<base href="<%=basePath%>" />

 

这样,这个页面中所的连接,jsp都会帮忙加上:http://localhost:8080/appricationName/ (类似这样的东西)

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值