此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【leadergg】截止到2008-07-21 16:16:12的历史汇总数据(不包括此帖):
发帖的总数量:3                        发帖的总分数:200                      每贴平均分数:66                       
回帖的总数量:20                       得分贴总数量:5                        回帖的得分率:25%                      
结贴的总数量:3                        结贴的总分数:200                      
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:0.00  %               无满意结分率:0.00  %                  
敬礼!

解决方案 »

  1.   

    具体执行哪个方法是在struts的xml的配置文件中配置的呀
    <action name="deleteP" class="deletePerson" method="execute">
    如果不写 method="execute"的话,那么默认执行的是execute()方法
      

  2.   

    具体执行那个方法我不管
    但是只要用到RuntimeAction 类
    就必须要执行execute方法(当然也可以是别的名字)。如
    在我的代码里面,如果执行requestForm 或 requestData 都要求execute 先于这两个方法先执行
    如果在action的配置里面可以设置也可以。
      

  3.   

    确实struts里excute()方法总是会被执行的.
      

  4.   

    以下方法应该都行
    1 把你的execute函数里的代码放入无参构造函数里2 如果你的BusinessProcessInstanceAction 继承自ActionSupport的话,你可以把这个execute里面的代码放入void validate() 中
    public void validate() {
    DataWrapperModel dm = new DataWrapperModel();
            HttpServletRequest req = ServletActionContext.getRequest();
            Hashtable reqMap = (Hashtable) req.getParameterMap();
            dm.setParameterMap(reqMap);        
            RuntimeAction.ViewData.set(dm);}
      

  5.   

    或者你自定义一个拦截器,把这个代码放入拦截器,参考一下prepareable等拦截器的源码
      

  6.   

    我在Action里面加上//无参构造函数
    public void RuntimeAction (){
    System.out.println("______________________________________222");
    } public void validate() {
    System.out.println("______________________________________111"); }
    //这个应该是会被执行的
    public String execute() throws Exception {
    System.out.println("______________________________________");
    }
    实际上只有validate被执行了,其他的都没有执行结果输出如下:______________________________________111
      

  7.   

    当我显示的调用execute方法才会输出
    ______________________________________111
    ______________________________________拦截器的建议我会考虑一下的,因为不熟悉,所以得闲看看相关的资料。唉
      

  8.   

    那你就用validate,这个方法会在每次的action的方法调用之前被执行只不过稍微有点违反这个方法的本意而已
      

  9.   

    又试了一下,execute 并非总是执行,只是在你没有指定执行的方法的时候默认会执行它。但是无参构造函数应该每次都会被执行啊不能用validate,它应该是用来在服务器端验证数据的。
      

  10.   


    谁说execute总被执行了?我上面已经说了,如果在配置文件里没有配置方法的话,默认执行execute方法而已构造函数是可以的,validate确实是用来校验的,但是做个他用也没什么不可你的struts的action是否是被spring管理的,如果是被spring管理的,要设置一下action的模式,例如:
    <bean id="xxx" scope="prototype"
    否则每次都是一个action,你的构造函数不会被执行
      

  11.   

    呵呵,还是用无参构造函数来实现了。
    昨天是没有new这个类,所以构造函数没有被执行。
    今天测试结果好像是这样的:
    validate是在你调用这个类的时候就会被执行,无论你是否NEW 一个此类。
    execute是在你没有指定调用的方法的时候默认会调用它。当你指定了方法之后就好像不会调用它了。
    无参构造函数是在你NEW 这个对象(类)的时候才会执行
    个人实验结果,不知正确与否。
    谢谢 Landor2004