项目中多个action类中用到下面两句代码ActionContext.getContext().put("showInfo", "<div style='color:green'>修改用户设置成功!</div>");
ActionContext.getContext().put("path", "/hr/user.do");由于主要变动就是“用户”和“"/hr/user.do”这两个数据,所以我想封装成一个方法,供所有action可以使用我写了一个类放这些封装的方法,但这个方法我不知道设计成静态方法好还是成员方法好。
我很想设计成静态方法,如下/**
 * 封装操作成功转发信息
 * @param name 模块名
 * @param path 要返回的路径
 */
public static void success(String name,String path){
ActionContext.getContext().put("showInfo", "<div style='color:green'>修改"+name+"设置成功!</div>");
ActionContext.getContext().put("path", path);
}但是怕有什么我不知道的隐患,所以来这里求解来了。有经验的指教下谢谢。

解决方案 »

  1.   

    使用范围不同
    Servlet的存活空间一共有4个
    page,request,session,application
    你现在把这两个值存在最广范围的application里,
    它就好比静态变量一样,
    对于所有的访问都返回同样的值。
    不太知道楼主的具体应用,如果静态变量对你的程序没有影响的话,应该没有什么。
      

  2.   

    使用范围不同
    Servlet的存活空间一共有4个
    page,request,session,application
    你现在把这两个值存在最广范围的application里,
    它就好比静态变量一样,
    对于所有的访问都返回同样的值。
    不太知道楼主的具体应用,如果静态变量对你的程序没有影响的话,应该没有什么。
      

  3.   

    我的应用就是往request作用域里添加数据而已。
      

  4.   


    那用下面的吧,不管有没有问题,缩小作用域都应该能减少麻烦 ServletActionContext.getRequest().setAttribute
      

  5.   

    楼上面怎么都觉得我把值放application作用域里面了。我那语法不是放request作用域里吗。
            向request、session、application等作用域添加值
             ActionContext ac=ActionContext.getContext();
            ac.put("req", "request作用域里的值");
            ac.getSession().put("sess", "session作用域里的值");
            ac.getApplication().put("app", "application作用域里的值");
      

  6.   

    没搞过这个啊~如果是往request里设置的话就更没问题了。:)
      

  7.   


    https://cwiki.apache.org/WW/accessing-application-session-request-objects.html