【动态方法、通配符、常量】

1.通配符

  1)Execute方法的弊端

  假设有这样的需求:

  A.    有一个action为PersonAction。

  B.    在PersonAction中要实现增、删、改、查四个方法。

  C.    但是在action中方法的入口只有一个execute方法

  D.    所以要想完成这样的功能,有一种方法就是在url链接中加参数。

  那么在action中的代码可能是这样的:

  PatternAction

  public class PatternAction extends ActionSupport{

  private String method;

  public String execute(){

  if(method.equals("add")){

  //增加操作

  }else if(method.equals("update")){

  //修改操作

  }else if(method.equals("delete")){

  //删除操作

  }else{

  //查询操作

  }

  return "";

  }

  }

  可以看出这样写结构并不是很好。而通配符的出现解决了这个问题。

  Pattern.jsp

  访问PersonAction的add方法:<br>

  <a href="${pageContext.request.contextPath}/pattern/patternAction.action">测试</a><br>

  Struts-pattern.xml

  <package name="pattern" namespace="/pattern"

  extends="struts-default">

  <action name="patternAction" method="add"

  class="cn.itcast.struts2.action.pattern.PatternAction">

  </action>

  </package>

  PatternAction

  public String add(){

  return "add";

  }

  2) method属性

  Pattern.jsp

  访问PersonAction的add方法:<br>

  <a href="${pageContext.request.contextPath}/pattern/patternAction.action">测试</a><br>

  Struts-pattern.xml

  <package name="pattern" namespace="/pattern"

  extends="struts-default">

  <action name="patternAction" method="add"

  class="cn.itcast.struts2.action.pattern.PatternAction">

  </action>

  </package>

  PatternAction

  public String add(){

  return "add";

  }

  说明:从上述代码可以看出只要配置文件中的method属性的值和方法名称一样就可以了。但是这种写法有弊端。如果aciton中需要5个方法。则在struts的配置文件中需要写5个配置,这样会导致配置文件的篇幅很大。而且重复性也很大

  3) 动态调用方法

  在url中通过action名称!方法名称可以动态调用方法。

  Pattern.jsp

  动态调用PatternAction中的add方法:<br>

  <a

  href="${pageContext.request.contextPath}/pattern/patternAction!add.action">测试</a>

  struts-pattern.xml

  <action name="patternAction"

  class="cn.itcast.struts2.action.pattern.PatternAction">

  </action>

  说明:这样的情况在配置文件中不需要method属性。更多精彩教程请关注:免费windows xp电脑系统和xp系统下载基地

posted on 2013-07-31 09:30  挖掘者者者  阅读(232)  评论(0编辑  收藏  举报