`
Luob.
  • 浏览: 1584287 次
  • 来自: 上海
社区版块
存档分类
最新评论

Struts 类型转换异常拦截器(三十三)

阅读更多
1.在Strtus2框架中默认拦截器栈提供了conversionError拦截器,当程序在运行时发生类型转换问题,那么拦截器就将会对该异常错误进行处理,然后输出到视图页面中。

2.action
package com.sh.action;

import com.opensymphony.xwork2.ActionSupport;
import com.sh.pojo.News;

public class AddNewsAction extends ActionSupport {
	private News news;
	public News getNews() {
		return news;
	}

	public void setNews(News news) {
		this.news = news;
	}
	
	public String execute(){
		return SUCCESS;
	}
}


3.struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts> 
     <!-- 定义国际化资源文件的基本名称 -->
	<constant name="struts.i18n.encoding" value="utf-8"/>
	<include file="struts-default.xml"/>
    <package name="default" extends="struts-default">
    	<action name="addnewsAction" class="com.sh.action.AddNewsAction">
			<result name="success">/shownews.jsp</result>  
			<result name="input">/addnews.jsp</result>     	
    	</action>
    </package>
</struts>


4.addnews.jsp
<body>
    <s:form action="addnewsAction" method="post">
	    <table width="401" height="176" border="0" cellpadding="0" cellspacing="0">
		    <tr>
	    		<td colspan="2">窗内网新闻发布</td>
	    	</tr>
		    <tr>
	    		<td width="118" style="font-weight:normal;text-align: right">标题:</td>
	    		<td width="224"><s:textfield name="news.newstitle"/></td>
	    	</tr>
	    	<tr>
    		<td style="font-weight:normal;text-align: right">内容</td>
    		<td><s:textfield name="news.newscontent"/></td>
    		<tr>
    		<td style="font-weight:normal;text-align: right">公布时长</td>
    		<td><s:textfield name="news.newstime"/></td>
    	</tr>
    	<tr>
    		<td style="font-weight:normal;text-align: right">发布人</td>
    		<td><s:textfield name="news.newsuser"/></td>
    	</tr>
    	<tr>
    		<td style="font-weight:normal;text-align: right">&nbsp;</td>
    		<td style="font-weight:normal;text-align: right"><s:submit value="发布"/></td>
    	</tr>
    	</tr>
    	
	    </table>
    </s:form>
  </body>


5.pojo
package com.sh.pojo;

public class News {
	private String newstitile;
	private String newscontent;
	private int newstime;
	private String newsuser;
      //get set
}

6.访问
--http://localhost:8080/Struts2_ConversionError/addnews.jsp
--如果  公布时间 输入字符 会出现转换异常
--此时 会在页面输入公布时间的地方出现 Invalid field value for field "news.newstime".

7.定义action的中文资源文件(发现 错误提示还是不友好 。通过设置属性文件成中文提示)
AddNewsAction_zh_CN.properties(放在action类的同包下)
invalid.fieldvalue.news.newstime=你输入的数据类型不符合要求!
news=News


8.-http://localhost:8080/Struts2_ConversionError/addnews.jsp
如果类型转换异常 就出现提示  你输入的数据类型不符合要求!
分享到:
评论

相关推荐

    struts2学习笔记十(第10讲.Struts2的核心 拦截器)

    在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程分离开来的重要组件。本篇将深入探讨Struts2的核心拦截器以及其工作原理。 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过...

    Struts处理类型转换错误,如时间转换

    - **全局异常拦截器**:`struts-default.xml`中有一个`exception`拦截器,可以配置它来捕获所有未处理的异常,并根据需要进行处理。 5. **配置示例** 在`struts.xml`中,可以配置一个`exception`拦截器,指定一个...

    Struts2转换器、拦截器、验证以及国际化

    **默认拦截器栈**:Struts2提供了多个默认的拦截器栈,如`defaultStack`、`simpleStack`等,它们包含了常用的操作,如类型转换、参数填充、异常处理等。 **自定义拦截器**:开发者也可以根据需要创建自定义拦截器,...

    struts2内置拦截器简介

    Struts2的内置拦截器主要包括以下几类:用于异常处理、参数绑定、会话管理、调试等功能。每个拦截器都有特定的作用,可以根据需求选择合适的拦截器组合使用。 #### 2. 常用内置拦截器详解 ##### 2.1 Exception 此...

    struts2 Interceptor拦截器

    ### Struts2 Interceptor 拦截器详解 #### 一、概述 在现代Web开发中,特别是基于Java的Web应用程序开发中,Struts2框架因其简洁性和强大的扩展能力而备受青睐。Struts2框架的核心设计理念之一是MVC(Model-View-...

    struts2拦截器

    #### 三、拦截器在Struts2中的应用 在Struts2框架中,拦截器的作用非常广泛。主要体现在以下几个方面: - **请求拦截**:拦截器可以拦截用户的请求,并对其进行预处理或后处理。 - **类型转换**:例如,将请求参数...

    struts2学习笔记三(第3讲.Struts2的类型转换)

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括MVC设计模式的实现、类型转换、国际化、拦截器等。在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理...

    Struts2的拦截器

    4. **conversionError**:类型转换错误拦截器,用于捕获并处理Action参数类型的转换错误,向用户展示友好的错误信息,提高用户体验。 5. **createSession**:创建HttpSession,确保Action中可以访问到Session对象,...

    struts-default中拦截器介绍.pdf

    4. `conversionError` 拦截器:这个拦截器处理类型转换错误,从ActionContext中取出转换错误,并转化为Action的FieldError,方便后续处理。 5. `createSession` 拦截器:负责在需要HttpSession的场景下创建...

    Struts2默认拦截器解析.pdf

    4. **conversionError**:转换错误拦截器,处理数据类型转换失败时的异常。 5. **cookie**:Cookie拦截器,用于处理请求中的Cookie信息。 6. **createSession**:创建会话拦截器,当需要时自动创建Servlet session...

    struts2拦截器.rar

    - `ExceptionMappingInterceptor`:处理异常,将系统异常转换为Struts2的ActionError。 - `SessionAwareInterceptor`:使Action支持Session属性。 7. `Result`与`Interceptor`的区别:Result是在Action执行成功后...

    Struts2拦截器及其用法详细说明

    总的来说,Struts2拦截器为开发者提供了强大的功能,可以控制Action执行流程、处理异常、实现日志、国际化、模型驱动等多种需求,极大地提高了应用的灵活性和可维护性。正确理解和使用拦截器是掌握Struts2框架的关键...

    自定义类型转换器

    但这样做会导致Struts2的默认拦截器(如`defaultStack`,它包含了处理如文件上传、异常处理等核心功能的拦截器)不再生效。为了解决这个问题,我们可以创建一个拦截器栈(`interceptors-stack`),它实际上是一组...

    struts2数据类型转换

    2. **提高代码健壮性**:Struts2的类型转换机制能够自动处理类型转换过程中可能出现的异常情况,如类型转换失败时,会触发`conversionError`拦截器,从而在用户界面上给出友好的提示信息,提高用户体验。 3. **增强...

    struts拦截器介绍

    9. **ExceptionInterceptor**:异常拦截器,将捕获的异常定向到特定页面显示。 10. **File UploadInterceptor**:文件上传拦截器,提供文件上传功能,处理多部分表单数据。 11. **I18nInterceptor**:国际化拦截器...

    Struts2内置拦截器简介

    - **用途**:当请求参数类型与Action属性不匹配时,会触发此拦截器,帮助开发者捕获转换异常,并通过`ActionContext`获取具体的转换错误信息。 5. **Create Session (创建会话)** - **功能**:自动为每个请求...

    struts2拦截器详述ppt

    ### Struts2拦截器详述 #### 一、理解拦截器 ##### 1.1 什么是拦截器? 拦截器(Interceptor)是面向切面编程(AOP)中的一项关键技术,主要用于在方法或字段被访问之前对其进行拦截,并在访问之前或之后加入特定...

    struts03:拦截器、过滤器与拦截器的区别、文件上传

    本文将深入探讨Struts框架中的拦截器(Interceptor)以及它与过滤器(Filter)的区别,并结合文件上传功能进行讲解。 1. 拦截器与过滤器的概念 - **拦截器**:在Struts2框架中,拦截器是基于AOP(面向切面编程)的...

Global site tag (gtag.js) - Google Analytics