struts2 与jsp 的 参数调用问题

在struts2 的action 里 有这样的问题
方法aaa和方法bbb

public class abc {

public String aaa()throws Exception{

    参数 x

    return SUCCESS;

}

public String bbb()throws Exception{


    return SUCCESS;

}

}

运行方法aaa,得到参数 x
想把参数 x 在方法 bbb里调用
希望 高手们指点。

55555555555555

[b]问题补充:[/b]
谢谢 xuxiaolei
的回答

卧室把x 用 各get set 方法
可是在方法bbb调用、 是null

您能不能具体说一下

谢谢

[b]问题补充:[/b]
谢谢 xuxiaolei
那么快给我答复.太感谢了

其实我就是按照你说的那么做的

public class abc {

public String aaa()throws Exception{    
    x = "hello";   
    return SUCCESS;    
}    

public String bbb()throws Exception{    
    //先用其他方法调用下aaa(),然后x值已经被设置了,bbb()方法就可以使用x了   

    //一个方法

  tt=  ccc(x);
  //但是我打印 x的植 是 null
System.out.println(x);
    return SUCCESS;    

}   

private String x;    

//加上 x 的getter setter 方法

}

非常感谢你

[b]问题补充:[/b]
谢谢 xuxiaolei
我好象有点明白你的意思了.
我在仔细想想
[b]问题补充:[/b]
谢谢 xuxiaolei

我把代码贴出来。
麻烦你看一下。
谢谢

public class SearchAction extends ActionSupport {

private static final long serialVersionUID = -1941901703467836026L;

private GoodsManager goodsManager;  //service 层
private Long minPrice;
private Long maxPrice;
private String[] category;
private Goods goods;
private PaginationSupport ps;
private List<Goods> pageGoods;

private int pageSize = 7;
private int startIndex;
private int nextIndex;
private int previousIndex;

    //这个方法运行后, 得到detachedCriteria 的值
public String allList() throws Exception { 

    DetachedCriteria detachedCriteria = DetachedCriteria
            .forClass(Goods.class);


        if (null != getCategory()) {
            detachedCriteria.add(
                    Restrictions.in(("category"), getCategory())).add(
                    Restrictions.between(("price"), getMinPrice(),
                            getMaxPrice())).addOrder(Order.asc("price"));
        } else {
            detachedCriteria.add(
                    Restrictions.between(("price"), getMinPrice(),
                            getMaxPrice())).addOrder(Order.asc("price"));
        }

        ps = goodsManager.findpageByCriteria(detachedCriteria, pageSize,
                startIndex);
        previousIndex = ps.getPreviousIndex();
        nextIndex = ps.getNextIndex();
        totalCount = ps.getTotalCount();


    return SUCCESS;
}


//这个方法是想把上个方法里的detachedCriteria值 ,传到这个方法里的detachedCriteria参数里。

public String pageList() throws Exception{
    DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Goods.class);


    ps = goodsManager.findpageByCriteria(detachedCriteria, pageSize,
            startIndex);
    previousIndex = ps.getPreviousIndex();
    nextIndex = ps.getNextIndex();
    return SUCCESS;
}


// getters setters 方法 省略了

[b]问题补充:[/b]
xuxiaolei 谢谢您的回答。
是我刚开始表达不清楚。
我struts2的;理解还不 太好。

感觉第2个请求发出后,第一个请求的变量值都没有乐。

郁闷。

其实我是在做分页。
在allList中,就是把jsp页面的查询条件放入 detachedCriteria 里
在pageList中, 是分页。但是,没有查询条。所以想巴detachedCriteria 的值调过来。

我按照你的提示在想一想。
还是要很感谢您。
在百忙之中。为小弟解答问题。
[b]问题补充:[/b]
xuxiaolei
谢谢您
我看看
按照您的提示
我在好好想一想

[code="java"]
public class DividePage extends ActionSupport {
public String execute() throws Exception {
//通过requestPageNum计算出来确定要从数据库中取那些数据
//然后把结果放在result中,在forward到的另一个页面就可以直接使用了
return SUCCESS;
}

private int requestPageNum;
private List result;

}
[/code]

另外,我的blog有个分页的逻辑,你可以参考看下http://xuxiaolei.iteye.com/blog/165058

把参数x设置成类abc的属性,aaa方法里面设置x的值,bbb方法就可以使用x的值了,不知道问的是不是这个意思

[code="java"]
public class abc {

public String aaa()throws Exception{ 
    x = "hello";
    return SUCCESS; 
} 

public String bbb()throws Exception{ 
    //先用其他方法调用下aaa(),然后x值已经被设置了,bbb()方法就可以使用x了
    return SUCCESS; 

}

private String x; 

}
[/code]

完整代码贴出来看看

不好意思,我理解错你的意思了,struts2中的action是线程安全的,每一次请求都可以看成是不同的action实例,所以,如果你想在两个请求中(比如说,第一次请求你的url是SearchAction!allList.action,第二次请求的是SearchAction!pageList.action)这两个请求中是无法在类间共享变量的,即使变量是类的属性也不行,因为可以看成两个请求就是两个不同的action实例,如果你要那样做的话,就只有用allList去调用pageList,pageList函数需要加个参数,就是你需要传递的参数。希望以前的回答没有误导你,我说的有不对的地方欢迎指正。