今晚发现,其实,不用这么麻烦也可以
直接定义java.sql.Date就可以了
//==============form1.jsp----------------------------
<form action="DateAction.do" method="post">
date:<input type="text" name="date1"/>在这里输入2010-10-1
<input type="submit" value="提交"/>
</form>
//==============struts-config.xml----------------------------
<form-bean name="DateForm" type="com.shop.web.DateForm"></form-bean>
<action path="/DateAction" type="com.shop.web.DateAction" name="DateForm"></action>
//==============com.shop.web.DateForm extends ActionForm----------------------------
private Date date1;
setter getter;
//===================com.shop.web.DateAction extends Action------------
DateForm df=(DateForm)form;
Date d=df.getDate1();
System.out.println(d);
return null;
-------------------------------前面很简单---------关键是取不到时间----
。。。。。。。。。。。。。。。。。。。。。。需要写下面的类。。。。。。。还需要在web.xml中配置。。。。。。。
<servlet>
<servlet-name>UtilDateConverterIniServlet</servlet-name>
<servlet-class>com.shop.utils.UtilDateConverterIniServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
------------------------------------------------------------------------------------
public class UtilDateConverterIniServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void init() throws ServletException {
//System.out.println("UtilDateConverterIniServlet=>>init()");
// System.out.println(ConvertUtils.class);
////class org.apache.commons.beanutils.ConvertUtils
ConvertUtils.register(new UtilDateConverter(), Date.class);
}
}
---------------------------------------------------------------------------------
public class UtilDateConverter implements Converter {
public Object convert(Class type, Object value) {
System.out.println("UtilDateConverter=>>convert() value=" + value);//UtilDateConverter=>>convert value=2010-10-1
System.out.println("type:"+type);//type:class java.util.Date
if (value == null) {
return value;
}
if (value instanceof String) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
return format.parse((String)value);
} catch (ParseException e) {
e.printStackTrace();
}
}
if (value instanceof Date) {
return value;
}
return null;
}
}
===========================================================
分享到:
相关推荐
ActionForm是Struts1中处理用户输入的核心组件,它负责接收、验证和封装来自表单的数据。在本文中,我们将深入探讨如何利用ActionForm实现表单验证,并在验证失败时追加错误信息。 1. **ActionForm介绍** ...
Struts1提供了丰富的标签库来辅助表单处理。 - **Struts2**: 直接使用Action来处理表单数据,不再需要专门的ActionForm。Action可以是一个普通的Java对象,并且可以通过标签库直接访问其属性。此外,Struts2还支持...
### Struts2 OGNL 表单提交问题详解 #### 一、背景介绍 Struts2框架作为一款流行的企业级应用开发框架,在处理MVC架构方面有着独特的优势。其中,OGNL (Object-Graph Navigation Language) 作为一种强大的表达式...
ActionForm对象用于封装表单数据,从客户端传入,被Action处理后返回给视图。每个ActionForm对应一个特定的用户界面,包含了与之相关的所有字段。 **5. JSP标签库** Struts提供了丰富的JSP标签库,如logic、bean、...
然后,ActionServlet根据配置文件(struts-config.xml)找到对应的Action类,并将ActionForm中的数据传入Action类,执行业务逻辑。最后,Action返回一个ActionForward对象,Dispatcher根据这个对象决定转发到哪个JSP...
当ActionServlet接收到请求后,它会根据Struts-config.xml中的配置信息找到对应的Action实例,将ActionForm中的数据传入,然后调用相应的方法来执行业务逻辑。 5. **视图 (JSP)**: Action执行完成后,会返回一个...
当用户提交表单时,Struts2会尝试将表单字段值绑定到Action类的相应字段,这个过程称为“自动数据绑定”。例如,如果表单中有字段`name`,Action类中应有一个`private String name;`的属性,Struts2会自动将这两个...
压缩包中的示例项目可以帮助初学者快速理解Struts2的工作原理和使用方式,通常包括基本的CRUD操作、表单验证、文件上传下载等常见功能。 8. **库文件(libs)**: "libs"目录下包含了Struts2框架运行所需的依赖库...
这段代码通过修改表单的`action`属性并提交表单来间接触发Struts Action。其中`url`参数应为Action的完整路径,例如`'actionName.action?paraName=arg0'`。 - **使用表单提交** ```html 查询" onclick="form...
首先,Struts2框架的核心特性包括Action类、拦截器(Interceptors)、结果类型(Result Types)以及强大的表单和数据绑定。Action类是处理用户请求的中心,而拦截器则允许在执行Action前后添加额外的功能,如日志...
通常会使用`Part`对象的`write`方法,传入目标路径来完成这个操作。 6. **错误处理**:在处理文件上传时,可能遇到各种错误,如文件过大、格式不正确等。你需要捕获这些异常,并返回相应的错误结果,提示用户。 7....
Action接收到请求时,根据传入的ID获取数据库中的旧记录,显示在表单中供用户编辑,用户提交更改后,调用DAO的`updateEmployee()`方法更新数据库。 4. **查询(Query)**:查询操作通常分为两种:一种是简单的按...
可以使用占位符在资源文件中定义可变的字符串,然后在Action中传入实际的参数值。 **示例资源文件**: ```properties # messages.properties greeting.message=Hello, {0}! ``` **示例代码**: ```java public ...
Struts1 ActionForm可以收集表单数据,Action类处理这些数据,可能包括验证、转换和业务逻辑处理,最后通过DAO将数据存储到数据库中。 4. **文章的删除**:删除操作通常需要用户确认,一旦确认,Action类会根据传入...
- 使用jQuery的`$.ajax()`或`$.getJSON()`方法发送请求到服务器,传入当前省份的ID。 - 接收到服务器返回的城市数据后,使用jQuery操作DOM,更新城市下拉列表的内容。 2. **后端部分**: - 在Struts2框架中,...
4. **业务逻辑层**:Action类,负责处理Struts传入的请求,调用持久化层的方法进行数据操作。 5. **视图层**:JSP页面,展示处理结果或用户界面。 6. **过滤器**:可能包括字符编码过滤器,防止XSS攻击等。 7. **...
比如,我们有一个`UpdateAction`,其中的`update()`方法负责根据传入的ID查询数据库中的记录,更新相关字段,最后保存更改。在更新操作中,可能还需要处理并发控制和版本控制等问题,确保数据的一致性。 4. 删除...
在这个示例中,`login.jsp`页面使用了Struts标签库(`<%@tagliburi="/struts-tags"prefix="s"%>`)来构建表单。表单的动作属性`action="login/userAction!register.action"`指定了当用户提交表单时,将调用`...