获取地址栏参数的疑惑

问题描述

小弟最近在看一个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类得其他方法,请指点!!!本想自己写个方法去的地址栏参数,但是总是感觉没有研究透,放不下,这种方法确实是简单了许多啊!!!

解决方案

因为private String action = "index"; 这里这样声明,那么就得用struts2的环境,这样的东西要能够取到值,你得在你的页面最好用struts2的标签。你可以试试。
解决方案二:
楼上解释很到位
解决方案三:
还有 struts2的动态调用已经足够灵活了,为什么要这么调用了 ,你这个方式不可取,每次都得反射出来。你现在已经ssh2一起整合了,不要这么做啦。
解决方案四:
比如 <s:form>……这个里面用你的s:text什么的</s:form> 这样提交。

时间: 2024-12-08 15:12:30

获取地址栏参数的疑惑的相关文章

用javascript获取地址栏参数

核心提示:本文列举了用javascript获取地址栏参数的三种方法 本文列举了用javascript获取地址栏参数的三种方法: 方法一: <script type="text/javascript"> <!-- String.prototype.getQuery = function(name) {  var reg = new RegExp("(^&)"+ name +"=([^&]*)(&$)"); 

asp 获取地址栏参数代码

asp 获取地址栏参数代码 ============================================ 函数名:JoinChar 作  用:向地址中加入 ? 或 & 参  数:strUrl  ----网址 返回值:加了 ? 或 & 的网址 pos=InStr(1,"abcdefg","cd") 则pos会返回3表示查找到并且位置为第三个字符开始. 这就是"查找"的实现,而"查找下一个"功能的 实现

使用JavaScript获取地址栏参数的方法

 代码如下: /**  *  获取地址栏参数  *  * @example GetUrlString('id')  *  * @desc    调用时加上判断,保证程序不会出错  *             var myurl = GetUrlString('id');  *             if (myurl != null && myurl.toString().length > 1) {  *                  alert(GetUrlString(&q

JS获取地址栏参数的几种方法小结

 本篇文章主要是对JS获取地址栏参数的几种方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助   代码如下: <script>  // 获取地址栏的参数数组  function getUrlParams() {   var search = window.location.search;   // 写入数据字典   var tmparray = search.substr(1, search.length).split("&");   var params

JS获取地址栏参数的几种方法

JS获取地址栏参数的几种方法   <script>  // 获取地址栏的参数数组  function getUrlParams() {   var search = window.location.search;   // 写入数据字典   var tmparray = search.substr(1, search.length).split("&");   var paramsArray = new Array;   if (tmparray != null)

JS获取地址栏参数的几种方法小结_javascript技巧

复制代码 代码如下: <script> // 获取地址栏的参数数组 function getUrlParams() {  var search = window.location.search;  // 写入数据字典  var tmparray = search.substr(1, search.length).split("&");  var paramsArray = new Array;  if (tmparray != null) {   for (var

使用JavaScript获取地址栏参数的方法_javascript技巧

复制代码 代码如下: /**  *  获取地址栏参数  *  * @example GetUrlString('id')  *  * @desc    调用时加上判断,保证程序不会出错  *             var myurl = GetUrlString('id');  *             if (myurl != null && myurl.toString().length > 1) {  *                  alert(GetUrlStrin

jQuery获取地址栏参数插件(模仿C#)_jquery

复制代码 代码如下: $.request = (function () { var apiMap = {}; function request(queryStr) { var api = {}; if (apiMap[queryStr]) { return apiMap[queryStr]; } api.queryString = (function () { var urlParams = {}; var e, d = function (s) { return decodeURICompon

四款js获取地址栏参数实例函数

<script language="网页特效"> var url=window.location.search; if(url.indexof("?")!=-1)   {     var str   =   url.substr(1)     strs = str.split("&");     for(i=0;i<strs.length;i++)     {       document.write([strs[i].