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会认为是给属性注入值,估计是这样
------解决方案--------------------
------解决方案--------------------
struts2在进入action时会自动调用所有以get开头的方法,在跳出action时会自动调用所有以set为开头的方法。所以这边命令的时候,一般的方法不要以get,set开头,除非是你的变量(get、set方法)。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
单独使用spring3 就足够了。没必要整合