wangy404 2011-08-26 05:22
浏览 236
已采纳

获取地址栏参数的疑惑

小弟最近在看一个S2SH的项目,Struts的后缀改了,然后每个连接后面都带有一个action=xx的参数,有个BaseAction类:

 

public class BaseAction extends ActionSupport {

    private String action = "index";

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    protected String executeMethod(String method) throws Exception {
        Class[] c = null;
        Method m = this.getClass().getMethod(method, c);
        Object[] o = null;
        String result = (String) m.invoke(this, o);
        return result;
    }
    public String execute() {
        try {
            return this.executeMethod(this.getAction());
        } catch (Exception e) {
            logger.error(e);
            return ERROR;
        }
    }
}

 然后其他action类继承自此类,贴一个:

 

public class Read extends BaseAction{

    public String execute() {
        if (this.getAction().equalsIgnoreCase("topic")) {
            return this.topic();
        } else if (this.getAction().equalsIgnoreCase("history")) {
            return this.history();
        } else if (this.getAction().equalsIgnoreCase("own")) {
            return this.own();
        } else if (this.getAction().equalsIgnoreCase("summary")) {
            return this.summary();
        } else if (this.getAction().equalsIgnoreCase("showip")) {
            return this.showip();
        } else if (this.getAction().equalsIgnoreCase("summaryhistory")) {
            return this.summaryhistory();
        } else if (this.getAction().equalsIgnoreCase("showiphistory")) {
            return this.showiphistory();
        } else if (this.getAction().equalsIgnoreCase("showupfile")) {
            return this.showupfile();
        } else if (this.getAction().equalsIgnoreCase("attach")) {
            return this.attach();
        } else if (this.getAction().equalsIgnoreCase("showvote")) {
            return this.showvote();
        } else if (this.getAction().equalsIgnoreCase("waste")) {
            return this.waste();
        } else if (this.getAction().equalsIgnoreCase("auditing")) {
            return this.auditing();
        } else if (this.getAction().equalsIgnoreCase("auditingAttach")) {
            return this.auditingAttach();
        } else if (this.getAction().equalsIgnoreCase("elite")) {
            return this.elite();
        } else {
            return ERROR;
        }
    }

}

 它就一句getAction()就可以拿到url的action参数的值,但是小弟照猫画虎却死活只是action="index";所以无法执行action类得其他方法,请指点!!!本想自己写个方法去的地址栏参数,但是总是感觉没有研究透,放不下,这种方法确实是简单了许多啊!!!

展开全部

  • 写回答

4条回答 默认 最新

  • AngelAndAngel 2011-08-26 05:27
    关注

    因为private String action = "index"; 这里这样声明,那么就得用struts2的环境,这样的东西要能够取到值,你得在你的页面最好用struts2的标签。

    你可以试试。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 根据历年月数据,用Stata预测未来六个月汇率
  • ¥15 DevEco studio开发工具 真机联调找不到手机设备
  • ¥15 请教前后端分离的问题
  • ¥100 冷钱包突然失效,急寻解决方案
  • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
  • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
  • ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
  • ¥15 vscode开发micropython,import模块出现异常
  • ¥20 Excel数据自动录入表单并提交
  • ¥30 silcavo仿真,30分钟,只需要代码