package cn.utils;
import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;
import cn.web.formbean.FormBean;
public class WebUtils {
public static <T> T request2bean(HttpServletRequest request, Class<T> type) {
T bean;
try {
bean = type.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
Enumeration en = request.getParameterNames();
while (en.hasMoreElements()) {
String name = (String) en.nextElement();
String value = request.getParameter(name);
try {
BeanUtils.setProperty(bean, name, value);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return bean;
}
public static void copyBean(Object dest, Object src) {
ConvertUtils.register(new Converter() {
@Override
public Object convert(Class type, Object value) {
if (value == null)
return null;
String str = (String) value;
if (str.trim().equals(""))
return null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
return df.parse(str.trim());
} catch (ParseException e) {
throw new RuntimeException();
}
}
}, Date.class);
try {
BeanUtils.copyProperties(dest, src);
} catch (Exception e) {
throw new RuntimeException();
}
}
public static String generateID() {
return UUID.randomUUID().toString();
}
}
分享到:
相关推荐
本话题将围绕如何在Java中使用这些库来读取JSON数据并进行FormBean的操作进行详细讲解。 首先,我们需要理解FormBean的概念。FormBean是Java Web开发中的一个术语,通常用于封装HTML表单提交的数据,以便在服务器端...
当我们提交 Form 表单时,SpringMVC 将自动将 Form 表单提交的参数绑定到 User 对象中,并将其传递给处理器方法。然后,我们可以在处理器方法中访问 User 对象的属性,并进行相应的处理。 需要注意的是,在 ...
FormBean 是一个特殊的 JavaBean,它可以将 HTML 表单中的数据封装起来,并将其传递给 Action。ServletAction 接收到 HTML 请求后,在 Action-mapping 中找到合适的 FormBean,对 HTML 表单中的属性进行匹配,然后...
在动态表单中,FormBean的属性和验证规则可以在运行时动态生成,而不是在编译时固定。这使得系统能够适应更复杂、多变的业务场景。 3. **实现动态验证FormBean** - **配置文件方式**:通过XML或JSON等配置文件来...
当用户提交表单时,Struts框架会自动将请求参数填充到对应的FormBean属性中。 二、日期类型的处理 在实际应用中,我们可能会遇到需要处理日期类型的字段。Java中常用的日期类型有`java.util.Date`、`java.sql.Date`...
例如,如果表单中有两个字段`user.username`和`user.password`,那么Struts2将会尝试将这两个字段的值分别设置到Action类中名为`user`的对象的`username`和`password`属性上。 #### 四、示例代码分析 下面通过一个...
在这个例子中,我们将深入探讨如何在Struts1.2中实现动态FormBean并添加验证功能。 首先,让我们理解什么是动态FormBean。在传统的Struts1应用中,每个ActionForm Bean都是一个Java类,它对应于HTML表单的字段,并...
每个字段对应Bean的一个属性,用户提交表单后,服务器端会将这些数据绑定到Bean实例上,然后进行处理。这样做的好处在于可以将界面和业务逻辑解耦,使得代码更易于维护和扩展。 二、FormBeanUtil的原理 `...
这样在表单提交时,Struts框架可以自动将表单数据封装到FormBean实例中。 总之,Struts 1框架的标签库大大简化了JSP页面的开发。了解这些标签的使用方法和它们的属性,可以帮助开发者更加高效地开发Java Web应用...
A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证 C 用户每次提交表单,都会...
此外,如果需要在ActionForm中传递其他非文件数据,可以直接将它们作为普通属性添加到ActionForm中,Struts1会自动将这些数据绑定到FormBean。 总结来说,Struts1的多文件上传实例涉及到以下几个关键点: 1. 定义...
VO的作用在于封装业务逻辑所需的数据,它可以是由FormBean转化而来,也可以直接由PO转换得到,但其结构应该符合业务规则,而不是简单地复制Web层或持久层的数据结构。在用户查询信息的例子中,VO可能包含一个全名...
在 struts-config.xml 文件中定义 FormBean,可以指定其类名、属性以及与 JSP 页面表单字段的映射关系。FormBean 的状态可以在请求之间保持,实现数据的回显和错误信息的显示。 **4. DispatcherAction:** ...
动态Form是指在运行时根据数据库或其他数据源动态生成的表单。这在处理复杂或变化频繁的数据表单时特别有用。Struts通过以下方式实现动态Form: 1. **Dynamic Form Bean**:ActionForm可以被设计为动态加载其属性,...
在 Form-bean 元素中,我们可以使用 Form-property 元素来设置 FormBean 的属性。Form-property 元素有两个属性:name 和 value。Name 属性指定了需要设置的属性,value 属性指定了该属性的值。 其他元素 除了 ...
在传统的Struts应用中,表单字段通常与ActionForm类中的属性一一对应,但在某些情况下,如数据库记录的增删改查或者用户自定义配置等场景,表单字段的数量可能会变化,这时StrutsDynForm就能派上用场。 Struts ...
描述中提到的“formbean及增删改查等基本代码”,这是指在Web开发中,FormBean通常用来封装用户在表单中填写的数据,以便于在服务器端处理。而增删改查(CRUD,Create、Read、Update、Delete)是数据库操作的四大...
在FormBean中,会调用reset方法,将FormBean的属性恢复到初始状态,确保每次 处理请求前,FormBean处于一个干净的状态。 3. 随后,调用FormBean的setter方法,根据HTTP请求参数,将FormBean的属性设置 为相应的值。 ...
框架自动收集用户输入并以FormBean的形式将这些数据进行封装后传递给Action,然后FormBean可以被传递到业务层(JavaBean)。通过重载ActionForm类中的validate()方法来校验用户输入的数据。 此外,数据校验也可以...
例如,@ModelAttribute注解可以用来关联方法参数和模型数据,方便从请求中获取数据并将其添加到模型中: ```java @RequestMapping(method = RequestMethod.POST) public String processForm(@ModelAttribute(...