您的位置:首页 > 数据库

SSI 整合过程中出现的问题1

2014-11-05 00:00 381 查看
摘要:
SSI整合,控制台输出SQL语句,No result defined for action

一:在整合SSI过程中,如何在控制台输出当前运行的SQL语句?

1)新建 log4j.properties 文件,放在src目录下,文件内容如下:

# ibatis print sql

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.logger.com.ibatis=debug

log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug

log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug

log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug

log4j.logger.java.sql.Connection=debug

log4j.logger.java.sql.Statement=debug

log4j.logger.java.sql.PreparedStatement=debug,stdout

2)在lib目录下,添加 org.apache.log4j.jar 包;

3)重启tomcat服务器,访问过程中既可以在控制台看到当前执行的SQL语句。

二:出现 No result defined for action

当 struts2 开发过程中,从 jsp 页面跳到 action 过程中,出现:No result defined for action 错误时,一般有以下两个原因:

1)validate方法没有通过

2)页面元素中有重命名时,但后台action类的对应的接收此同名参数的是变量而没有写成数组

解决办法:

问题一:在后台action类中重写ActionSupport中的三个方法,并在其实现代码中设置断点,debug模式监控传入的参数,则可知报错具体原因:

public void addActionError(String anErrorMessage){

String s=anErrorMessage;

System.out.println(s);

}

public void addActionMessage(String aMessage){

String s=aMessage;

System.out.println(s);

}

public void addFieldError(String fieldName, String errorMessage){

String s=errorMessage;

String f=fieldName;

System.out.println(s);

System.out.println(f);

}

我自己查找出来的原因是:sql语句所映射的xml文件中的 sql 语句写错。

问题二:

(见参考内容)

参考内容来源:http://www.blogjava.net/javagrass/archive/2011/07/20/354684.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息