当前位置: 代码迷 >> J2EE >> 一个 S2SH 整合后出现的调用有关问题
  详细解决方案

一个 S2SH 整合后出现的调用有关问题

热度:942   发布时间:2016-04-22 00:23:49.0
一个 S2SH 整合后出现的调用问题
ACTION里的连个方法
Java code
public String getAllUser() throws Exception{        System.out.println("所有用户查询被执行。。。");                //this.userlist = us.getAllUser();        return SUCCESS;     }    public String getUserById() throws Exception{        System.out.println("单个用户查询被执行。。。");        /*System.out.println("id  : u.getID" +u.getId());        u = us.getUserById(u.getId());*/ //屏蔽了暂时不调用        return INPUT;    }


struts.xml 配置
XML code
<action name="getAllUser" class="org.zhou.action.UserAction"            method="getAllUser">            <result name="success">/showUser.jsp</result>            <result name="input">/error.jsp</result>        </action>                <!-- -->        <action name="userById" class="org.zhou.action.UserAction"            method="getUserById">            <result name="success">/editUser.jsp</result>            <result name="input">/error.jsp</result>        </action>




中间没有其他业务逻辑
控制台:输出
SQL code
所有用户查询被执行。。。所有用户查询被执行。。。单个用户查询被执行。。。


问题一: 
当我调用 getAllUser.action 他对应的getAllUser()方法调用了两遍 
而且调用玩了 他还调用了 userById.action 对应的方法


实验:
ACTION里加
public void getA()throws Exception
{
System.out.println("A");
}

public String getB() throws Exception
{
System.out.println("B");
return null;
}

public String nogetC() throws Exception
{
System.out.println("C");
return null;
}

public String getD()
{
System.out.println("D");
return null;
}

public void getE(){
System.out.println("E");
}


输出:
B
D


结论:
Action 里 带有返回值的 getMthod() 方法都会被执行 

不明白 求大虾们解释 


------解决方案--------------------
这问题有些诡异,是不是其他配置文件影响的...
------解决方案--------------------
getUserById() 和 getAllUser() 
struts会认为是给属性注入值,估计是这样
------解决方案--------------------
探讨

getUserById() 和 getAllUser()
struts会认为是给属性注入值,估计是这样

------解决方案--------------------
struts2在进入action时会自动调用所有以get开头的方法,在跳出action时会自动调用所有以set为开头的方法。所以这边命令的时候,一般的方法不要以get,set开头,除非是你的变量(get、set方法)。
------解决方案--------------------
探讨

但是在 单独只使用STRUTS2 是 没有出现这样的问题额

------解决方案--------------------
探讨

难道和 事务的传播特性 有关系 ?

------解决方案--------------------
单独使用spring3 就足够了。没必要整合
  相关解决方案