- 浏览: 736647 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
z6978445:
查询呢?比如要查出 tblRead200710 表与 tblR ...
使用hibernate SQLQuery实现动态表 -
xtp1211:
乱发,自己都没试过
windows下的apache限制IP连接数 -
guanqing123:
在apache的httpd.conf文件中加入
ProxyRe ...
apache2.2 tomcat6 集群 -
wangxingchun:
Thanks again
Axure RP组件库下载 -
feiyu86:
这才是专家嘛,通俗易懂。
Lucene倒排索引原理
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
<interceptors> <interceptor name="exception" class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/> </interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
public class LogonAction { private String userName; private String userPwd; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPwd() { return userPwd; } public void setUserPwd(String userPwd) { this.userPwd = userPwd; } public String execute() throws Exception{ if(userName.equals("callan") && userPwd.equals("fjf")){ ActionContext.getContext().getSession().put("userName", "callan"); return "succee"; } else { throw new SQLException(“用户名密码不正确”); } } }
配置文件:
<package name="logon" extends="struts-default"> <!-- global-exception-mappings必需在action的上面 --> <global-exception-mappings> <exception-mapping result="all" exception="java.lang.Exception"> </exception-mapping> </global-exception-mappings> <action name="logon" class="com.LogonAction"> <result name="succee">/logon/welcome.jsp</result> <result name="error">/logon/error.jsp</result> <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping> <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping> <result name="nullPoint">/logon/nullpoint.jsp</result> <result name="sql">/logon/sql.jsp</result> <result name="all">/logon/all.jsp</result> </action> </package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
评论
6 楼
binge520
2010-11-19
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
5 楼
binge520
2010-11-19
struts2中的异常处理
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
文章分类:Java编程 关键字: struts2 异常
异常处理后,能够提供友好的用户界面,而不是一些错误的代码信息.
利用struts2的异常处理机制可以很方便的实现异常处理,你不再需要在Action中捕获异常,并抛出相关的异常了,这些都交给拦截器来帮你做了。在struts-default.xml中己经设置了拦截器,因此我们可以直接使用声明式异常.struts2-default-xml声明的拦截器如下:
Xml代码
1.<interceptors>
2.<interceptor name="exception"
3.class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
4.</interceptors>
<interceptors>
<interceptor name="exception"
class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
异常的类型可以分为两种:局部异常映射和全局异常映射
当Action抛出异常时,会在局部中和全局中查找与之相匹配的异常,如果局部和全局中都有满足的异常映射,以局部的为准. 例子说明:
action:
Java代码
1.public class LogonAction {
2. private String userName;
3. private String userPwd;
4. public String getUserName() {
5. return userName;
6. }
7. public void setUserName(String userName) {
8. this.userName = userName;
9. }
10. public String getUserPwd() {
11. return userPwd;
12. }
13. public void setUserPwd(String userPwd) {
14. this.userPwd = userPwd;
15. }
16. public String execute() throws Exception{
17. if(userName.equals("callan") && userPwd.equals("fjf")){
18. ActionContext.getContext().getSession().put("userName", "callan");
19. return "succee";
20. } else {
21. throw new SQLException(“用户名密码不正确”);
22. }
23. }
24.}
public class LogonAction {
private String userName;
private String userPwd;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String execute() throws Exception{
if(userName.equals("callan") && userPwd.equals("fjf")){
ActionContext.getContext().getSession().put("userName", "callan");
return "succee";
} else {
throw new SQLException(“用户名密码不正确”);
}
}
}
配置文件:
Xml代码
1.<package name="logon" extends="struts-default">
2. <!-- global-exception-mappings必需在action的上面 -->
3. <global-exception-mappings>
4. <exception-mapping result="all" exception="java.lang.Exception">
5. </exception-mapping>
6. </global-exception-mappings>
7. <action name="logon" class="com.LogonAction">
8. <result name="succee">/logon/welcome.jsp</result>
9. <result name="error">/logon/error.jsp</result>
10. <exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
11. <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
12. <result name="nullPoint">/logon/nullpoint.jsp</result>
13. <result name="sql">/logon/sql.jsp</result>
14. <result name="all">/logon/all.jsp</result>
15. </action>
16. </package>
<package name="logon" extends="struts-default">
<!-- global-exception-mappings必需在action的上面 -->
<global-exception-mappings>
<exception-mapping result="all" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<action name="logon" class="com.LogonAction">
<result name="succee">/logon/welcome.jsp</result>
<result name="error">/logon/error.jsp</result>
<exception-mapping result="sql" exception="java.sql.SQLException"/></exception-mapping>
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<result name="nullPoint">/logon/nullpoint.jsp</result>
<result name="sql">/logon/sql.jsp</result>
<result name="all">/logon/all.jsp</result>
</action>
</package>
上面是个用户登陆的action及配置,定义了两个局部异常和一个全局异常
当输入的用户名和密码不为callan和fjf时,会抛出SQLException异常,局部异常配置起作用,会定向到sql.jsp,如果注释局部sql异常,全局异常起作用,定向到all.jsp
可以使用Struts2的标签来输出异常信息
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
例如sql.jsp页面
<body>
<s:property value="exception.message"/>
</body>
可以输出 用户名密码不正确
4 楼
xining
2009-04-19
后台打印出的 一大堆 错误代码 怎么办?
3 楼
fangwei
2009-02-12
多谢。。。
2 楼
jwjxluke
2008-11-13
如果不捕获异常,那么异常日志怎么记录?
1 楼
zbmartin
2008-07-07
请问一下,那个this.addFieldError,跟这个声明式的异常抛出的效果是一样的,这个异常机制有什么特别的用处啊
发表评论
-
struts2 prepare拦截器
2009-08-06 19:28 37091. prepare是在validate拦截器之前执行 2. ... -
struts2中使用ModelDriven
2009-07-29 11:10 6841在Struts 2中,提供了另外一种直接使用领域对象的方式,就 ... -
Struts2 输出XML
2009-03-01 16:46 3312struts.xml配置文件 <action name= ... -
struts2 使用Validation框架验证数据
2008-12-01 16:08 3334在《Struts2教程4:使用validate方法验证数据》中 ... -
struts2 使用validate方法验证数据
2008-12-01 16:05 5741在Struts2中最简单的验证数据的方法是使用validate ... -
Struts2 处理一个form多个submit
2008-12-01 16:00 2544Struts2 处理一个form多个submit 在很多Web ... -
深入Struts2的配置文件
2008-12-01 15:53 29211.1. 包配置: Struts2框架中核心组件就是Ac ... -
Struts2 默认的模板配置 theme
2008-12-01 15:48 4342在使用struts2标签时,默认情况下生成的html代码会添加 ... -
struts2 的国际化支持
2008-04-23 17:21 25136每种框价都会有国际化的支持,struts2的国际化大致上分为页 ... -
struts2 校验框架
2008-04-22 18:06 7888通过继承ActionSupport重写validate()方法 ... -
struts2 数据校验
2008-04-22 13:16 10508一. ActionSupport是个工具类,他实现了Actio ... -
struts2 转换器
2008-04-21 23:18 4601我们通过表单输入的数据其实都是一个String,有时需要把这些 ... -
struts2中的拦截器
2008-04-14 11:37 18197一.理解拦截器 1. 拦截器是在防问某个方法,字段之前或 ... -
struts2 文件上传
2008-04-03 18:13 7183一.简介Struts2并未提供自己的请求解析器,也就是就Str ... -
struts2中的Action(二)
2008-03-29 12:16 2089一. 动态方法调用一个Action包含多个业务处理功能,根据用 ... -
struts2中的Action
2008-03-27 17:03 34381.Struts2的Action可以不需实现任何接口或继承任何 ...
相关推荐
在Struts2中,异常处理是一项重要的功能,它确保了应用程序的健壮性和用户友好的错误反馈。这篇博客文章“Struts2中异常处理(demo)”可能详细介绍了如何在Struts2框架下优雅地处理程序中的异常。 在Java Web开发...
在Struts2中,异常处理是一项重要的功能,它确保在应用程序遇到错误时能够优雅地处理,提供友好的用户反馈,并保持系统稳定性。下面将详细讨论Struts2中的异常处理机制及其相关知识点。 1. **异常处理机制概述** ...
Struts2作为一款流行的Java Web框架,其异常处理机制是其核心功能之一,它使得开发者能够优雅地管理和处理应用程序中的异常情况,提供了一种统一的错误处理方式,从而提高用户体验并增强程序的健壮性。 在Struts2...
1. **异常拦截器**:在Struts 2中,我们可以通过编写自定义的拦截器来处理异常。拦截器是Struts框架的核心组件,它们在Action执行前后进行拦截,可以捕获并处理可能出现的异常。通过实现`Interceptor`接口并覆盖`...
2. **Struts-config.xml配置异常处理**:在框架配置文件中,`<global-exceptions>`标签用于定义全局异常处理规则。例如: ```xml ``` 这段配置表示,如果任何地方抛出了`java.lang.Exception`或其子类,...
Struts2提供了ActionError和FieldError接口,允许我们在Action类中捕获并添加错误信息,然后通过配置struts.xml文件,定义全局或特定Action的异常处理规则,使这些错误以JSON格式响应。 首先,你需要在Action类中抛...
Struts2是一个流行的Java web框架,它提供了强大的异常处理机制,使得开发者能够优雅地管理和展示在应用程序中出现的错误和异常。以下是对Struts2异常处理机制的详细说明: 1. **异常处理流程**: 当一个Action...
在Struts2中,异常处理机制是关键组成部分,确保程序在遇到错误时能够优雅地处理并提供反馈给用户。本文将深入探讨Struts2的异常处理机制,特别是声明式异常捕捉和异常映射。 首先,Struts2的异常处理机制允许...
在Struts2中,异常处理主要通过两种方式实现:全局异常处理和动作级别的异常处理。全局异常处理适用于整个应用,而动作级别的处理则针对特定的动作类。 1. 全局异常处理:Struts2提供了一个`struts-default.xml`...
在Struts2框架中,异常处理是至关重要的一个部分,它确保了应用程序的稳定性和用户体验。Struts2提供了多种方式来捕获和处理异常,帮助开发者优雅地处理程序中的错误情况。以下是Struts2异常处理的四种主要方法,...
项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。
在提供的压缩包文件"Struts_exception"中,可能包含了Struts异常处理的相关示例代码或者教程,例如如何配置struts.xml,如何创建自定义异常类,以及如何在Action中进行异常处理等。这些资源可以帮助开发者更深入地...
首先,Struts1.x框架默认的异常处理方式是通过`struts-config.xml`配置文件中的`<global-exceptions>`标签来定义全局异常处理。在这个标签内,你可以声明一个或多个异常类型,并为每个异常指定一个错误页面,当...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括表单处理、MVC设计模式支持以及异常处理机制。在文件上传方面,Struts2提供了方便的API和配置方式来处理单个或多个文件的上传。在这个主题中,...
在Struts2中,处理程序方法可能会抛出各种异常,为了提供统一的错误处理和用户友好的异常提示,我们可以定义全局异常提示。这篇博文主要探讨的是如何在Struts2中设置和使用全局异常提示属性文件。 首先,我们要理解...
6. **处理错误和异常消息**:Struts2默认会自动从资源文件中查找错误和异常消息,只需确保在`struts.properties`中设置了正确的错误消息资源包。 在提供的压缩包`07`中,可能包含了相关的教学材料,如幻灯片和案例...