- 浏览: 1229667 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (718)
- HTML (13)
- JS基础 (23)
- JS应用 (40)
- AJAX (6)
- JSP相关 (12)
- JAVA基础 (52)
- JAVA应用 (74)
- APPLET (11)
- SWING\RCP (2)
- JAVA反射 (6)
- 设计模式 (26)
- 数据库设计 (20)
- Struts (35)
- Struts2 (12)
- Spring (22)
- Hibernate (45)
- Ibatis (18)
- mybatis (3)
- SSH (8)
- UML (5)
- WebService (3)
- XML (16)
- Log4j (7)
- WEB容器 (26)
- 数据结构 (36)
- Linux (34)
- Ruby on Rails (1)
- 其它技术 (27)
- IDE配置 (15)
- 项目实战 (2)
- Oracle (69)
- JAVA报表 (7)
- Android学习 (2)
- 博客链接 (1)
- 网络基础 (1)
- WEB集群 (1)
- .Net开发 (11)
- PB (4)
- 系统构建 (15)
最新评论
-
jnjeC:
牛逼啊哥们,讲得太好了
Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包 -
九尾狐的yi巴:
很好 感谢!
Itext中文处理(更新版) -
luweifeng1983:
有用的,重启一下嘛。
设置eclipse外部修改文件后自动刷新 -
Master-Gao:
设置了也不管用,怎么破呢?
设置eclipse外部修改文件后自动刷新 -
aigo_h:
锋子还有时间写博客,还是很闲哈!
Add directory entries问题
在上一文中我们是通过自己写一个实现了Convert接口的类,并通过一个Serverlet在init的时候注册这个Convert。
但这样实现不够好。
在struts中可以通过插件来实现。
完整代码如下:
convert.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="convertAction.do" method="post"> intvalue:<input type="text" name="intval"/><br> doublevalue:<input type="text" name="doubleval"/><br> booleanvalue:<input type="text" name="booleanval"/><br> utildatevalue:<input type="text" name="dateval"/><br> <input type="submit" value="submit"/> </form> </body> </html>
form.
package com.lwf.struts.form; import java.util.Date; import org.apache.struts.action.ActionForm; public class ConvertForm extends ActionForm { private int intval; private double doubleval; private boolean booleanval; private Date dateval; public int getIntval() { return intval; } public void setIntval(int intval) { this.intval = intval; } public double getDoubleval() { return doubleval; } public void setDoubleval(double doubleval) { this.doubleval = doubleval; } public boolean isBooleanval() { return booleanval; } public void setBooleanval(boolean booleanval) { this.booleanval = booleanval; } public Date getDateval() { return dateval; } public void setDateval(Date dateval) { this.dateval = dateval; } }
action
package com.lwf.struts.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class ConvertAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return mapping.findForward("success"); } }
结果:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> intvalue:${convertForm.intval }<br> doublevalue:${convertForm.doubleval }<br> booleanvalue:${convertForm.booleanval }<br> utildatevalue:${convertForm.dateval }<br> </body> </html>
配置:
<action path="/convertAction" type="com.lwf.struts.action.ConvertAction" name="convertForm" scope="request"> <forward name="success" path="/convertResult.jsp"></forward> </action>
<form-bean name="convertForm" type="com.lwf.struts.form.ConvertForm"></form-bean>
下面是自定义的convert类,用来将String类转换为java.util.Date类型
package com.lwf.struts.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.beanutils.Converter; public class UtilDateConverter implements Converter { public UtilDateConverter(Object object) { } public Object convert(Class type, Object value) { if(value == null){ return value; } if(value instanceof Date){ return value; } if(value instanceof String){ try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); return sdf.parse((String)value); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; } }
以下代码关键:UtilDateConvertPlugIn用来实现PlugIn接口,并实现init方法
package com.lwf.struts.util; import java.util.Date; import javax.servlet.ServletException; import org.apache.commons.beanutils.ConvertUtils; import org.apache.struts.action.ActionServlet; import org.apache.struts.action.PlugIn; import org.apache.struts.config.ModuleConfig; public class UtilDateConvertPlugIn implements PlugIn { public void destroy() { } public void init(ActionServlet arg0, ModuleConfig arg1) throws ServletException { ConvertUtils.register(new UtilDateConverter(null), Date.class); } }
配置:
<plug-in className="com.lwf.struts.util.UtilDateConvertPlugIn" ></plug-in>
这样Struts启动的时候会加载这个UtilDateConvertPlugIn并执行init方法。。
是不是比新建一个servlet更合理呢。。
发表评论
-
DispatchAction 和DynaValidateActionForm 结合使用时的问题
2011-03-08 16:23 933使用DispatchAction使得程序员能够大大减少acti ... -
ActionForm中使用集合属性并自动组装数据
2011-01-18 14:32 929http://blog.csdn.net/m0085_cn/a ... -
Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
2010-11-10 14:13 975开的过程中碰到问题:Cannot find bean org. ... -
Struts 结合 Validate框架验证详解
2010-10-25 14:00 1508转自:http://student.csdn.net/spac ... -
JSTL与struts1标签
2010-08-31 10:17 1551JSTL与struts标签: http://www.360d ... -
如何自动清空struts表单域
2010-06-30 17:44 1269为了某种需要,formBean的SCOPE设置成了ses ... -
form验证与动态验证框架
2010-06-06 17:22 1388form验证返回ActionErrors. 动态验证则实现J ... -
resourcebundleeditor在eclipse里面的设置和使用
2010-05-30 11:30 1747我们一般使用native2ascii工具得到struts资源文 ... -
使用DispatchAction分发
2010-04-07 18:04 1159应用中经常有增、删、改、查操作,如果象一前一样使用List ... -
forward属性与ForwardAction类
2010-04-07 17:08 1174forward属性与ForwardAction类在配置文件按以 ... -
struts容错处理
2010-04-07 15:20 1187struts容错处理: 当客户请求的action不存在的时候 ... -
struts声明式异常二
2010-04-07 15:18 1173上文如果资源文件改为: error.login.usernu ... -
struts声明式异常一
2010-04-06 23:10 1054struts声明式异常: 在配置文件中配置exception ... -
struts编程式异常--html:error与html:message
2010-04-03 11:39 2040struts编程式异常过程: 截获异常信息;创建异常信息; ... -
struts国际化,从资源文件读取异常信息
2010-04-03 01:56 1201示例演示登录时从资源文件读取用户名或密码错误信息 logon ... -
struts国际化,资源文件读取三
2010-04-02 23:42 1030本示例演示客户进行语言设置,从而更改整个系统语言. 客户在c ... -
struts国际化,资源文件读取二
2010-04-02 22:18 1637package com.lwf.struts.util; ... -
struts国际化,资源文件读取一
2010-04-02 00:19 1373国际化的发展 看本文之前可先看一下properties文件的 ... -
struts html标签自动保存提交的表单值。
2010-04-01 17:01 2061我们之前JSP提交值后如果还要取得值怎么做? 应该是取得a ... -
ActionMapping相关
2010-04-01 16:02 1084一、Map的设置map.put("path" ...
相关推荐
自定义类型转换器是Struts 2的核心特性之一,允许开发者根据业务需求定制数据转换规则。以下将详细介绍如何创建、注册以及使用自定义类型转换器。 1. **创建自定义类型转换器** - 创建一个类,实现`org.apache....
在Struts的配置文件(如struts-config.xml或struts2的struts.xml)中,可以通过`<form-bean>`、`<action>`或者全局转换器配置来指定类型转换策略。例如,我们可以为特定的Action或整个应用指定自定义的转换器。 ...
在Struts中,文件上传和类型转换是两个重要的功能,它们允许用户上传文件并处理不同类型的数据。 文件上传是Web应用程序中常见的一种功能,允许用户通过表单提交本地文件到服务器。在Struts中,实现文件上传的关键...
Struts2是一个强大的MVC框架,它提供了许多功能来简化Web应用开发,包括类型转换、属性访问、文件上传以及拦截器等。以下是基于标题和描述的详细知识点: **一、局部类型转换** 在Struts2中,我们可以自定义类型...
通过这两个组件,Struts2实现了动态的数据绑定和灵活的类型转换功能。 #### 二、OGNL与ValueStack ##### 1. OGNL简介 OGNL是一种强大的表达式语言,用于获取和设置Java对象的属性。在Struts2中,OGNL被用来解析和...
Struts 1.x 支持数据类型的自动转换,但也可以通过自定义转换器来扩展这种功能。 **1. 自定义数据转换器** - 创建一个实现 `org.apache.struts.util.LabelValueConverter` 接口的类。 - 实现 `convert` 方法来完成...
通过以上介绍,可以看出Struts2框架在数据验证方面提供了非常灵活且强大的功能,不仅能够满足基本的数据类型转换和验证需求,还支持自定义验证逻辑以及错误消息的国际化配置。这对于构建高质量的Web应用程序来说是...
3. **自定义类型转换器**:可以通过继承`StrutsTypeConverter`类并重写其中的方法来实现自定义类型转换器。 ```java public class CustomStrutsTypeConverter extends StrutsTypeConverter { public Object ...
为了更好地理解如何在Struts 2.0中实现表单数据校验,下面将通过一个具体的例子来进行讲解。 ##### 4.1 HelloWorld Action 首先,我们来看一下HelloWorld Action类,它是实现数据校验的核心部分之一: ```java ...
- 通过自定义转换器可以集中管理日期类型的转换逻辑,避免了重复代码的出现。 - 提高了程序的健壮性和可读性。 5. **缺点**: - 相比直接在`Action`中进行类型转换,增加了额外的类和配置。 - 对于简单的项目来...
#### 一、StrutsForm中Date类型之“argumenttypemismatch”错误解决方法 在Web开发中,特别是在使用Struts框架处理表单数据时,经常会遇到日期类型处理的问题。当用户提交包含日期的表单时,如果表单中的相应字段被...
可以通过实现自定义的类型转换器来处理`java.util.Date`类型的转换。 **表格18**: DateConverter日期转换器类 ```java public class DateConverter implements TypeConverter { @Override public Object convert...