当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

动态调用Action与Action中办法(一)[Java编程]

赞助商链接



  本文“动态调用Action与Action中办法(一)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Struts1供应了DispatchAction 实现一个Action中名含多个业务逻辑

目前我们利用Struts2 也可实现现样的效果,是利用通配符来实现的.

struts.xml 文件中,常用

<action /> 的name ,class,method 三个属性都支持通配符

<resutl/> 也支持通配符

Xml代码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<action name="*Action_*" class="ssh.org.web.{1}Action" method="{2}">
<result name="success">/user/success.jsp</result>
<result name="input">/user/user.jsp</result>
</action>
</package>
</struts>

针对上面的配置,假定我拉的URL 是:http://localhost/struts/UserAction_addUser .action

UserAction_addUser 与*Action_* 匹配  ,第一个* 是User,第二个*是addUser,

{1} 的值为 User,{2}的值为addUser ,辨别大小写.

class="ssh.org.web.{1}Action"  赋值后是,由User 替换{1}

method="{2}" 赋值后是,由addUser 替换{2}

从而实现动态的找到Action 与找个Action中的办法.

此中一个Action代码: 类名是UaerAction,此中有addUser()办法

与URL http://localhost/struts/UserAction_addUser .action  相匹配,情势为*Action_*

Java代码

package ssh.org.web;
import java.util.Date;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport
{
private static final long serialVersionUID = 1L;
private String username;
private int age;
private Date birthday;
private List<String> aihao;
public String addUser() throws Exception
{
//增添用户
return "success";
}
public void validateAddUser()
{
if (null == username || "".equals(username))
{
addFieldError("username","用户名不能为空");
}
System.out.println("validateAddUser() 考证办法 ");
}
public String getUserList()
{
//获得全部用户
return "success";
}
public void validateGetUserList()
{
//考证办法略...
System.out.println("validateAddUser() 考证办法 ");
}
public String getUsername()
{
return username;
}
public void setUsername(final String username)
{
this.username = username;
}
public int getAge()
{
return age;
}
public void setAge(final int age)
{
this.age = age;
}
public Date getBirthday()
{
return birthday;
}
public void setBirthday(final Date birthday)
{
this.birthday = birthday;
}
public List<String> getAihao()
{
return aihao;
}
public void setAihao(final List<String> aihao)
{
this.aihao = aihao;
}
}

<resutl/> 也支持通配符,

struts.xml文件 一例子:

Xml代码

<action name="page_*" class="ssh.org.web.HrefAction" >
<result name="success">{1}.jsp</result>
</action>

最后在说一说优先级的问题

通配符匹配方法 ,当我们写多个<action name="*"  .../> 时,意思就是你的URL大概与多个<action name="*"  .../>匹配上,先履行那一个?

答: 按书写的先后次序,先找到哪个,就履行哪个.


  以上是“动态调用Action与Action中办法(一)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>C++源代码免杀之函数的动态调用</b>
  • 动态调用Action与Action中办法(一)
  • <b>动态调用Action与Action中办法(二)</b>
  • <b>C++中若何动态调用dll杀进程</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .