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();
}
}
分享到:
相关推荐
2.Struts2和Struts1.x的... Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。 Struts 2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。
本篇文章主要介绍了SpringMVC中使用bean来接收form表单提交的参数时的注意点,具有很好的参考价值。下面跟着小编一起来看下吧
介绍如何使用动态formbean的例子
A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证 C 用户每次提交表单,都会...
NULL 博文链接:https://haixiami200411.iteye.com/blog/736554
Struts1.2动态FormBean 加 验证功能 的一个例子
例如添加一个用户的时候,user表中有name和id两个字段,那么在表单中必需有两个<input>name分别为name和id(大小写忽略) 3.每一个控制层的跳转必需要带上参数mode,mode可为: OTHER//其它,SHOWONE//显示单例,...
structs的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。 第四步:派发请求;控制器根据配置信息,对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个
流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传...
ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样的formbean对象呢?看配置文件。 3.要说明的是, ...
在struts1中每次提交表单的时候,表单中的属性值都先赋予formbean,然后操作formbean。但是现在struts2中用对象.属性名来给对象赋值,然后操作这个对象。而这些对象都是vo的实现,如果使用hibernate,可以直接把...
Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。Struts 2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。 虽然,在理论上Struts2的...
* 在此方法中处理HTTP请求数据,并作响应 */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ...
在struts框架中,如果每次都去校验form中的每个字段,显然费时费力,本例通过java反射得到form中的字段和值,并较验,用于在与数据库交互之前的校验,从而防止数据库恶意注入. 随包附带一个通用的易扩展的正则表达式校验类...
NULL 博文链接:https://zywang.iteye.com/blog/413003
在Struts中几种情况可以使标签初始就是选中的,Formbean里面该Property的值设为 1.on 、2.yes 、3.true 这三种情况都是可以实现默认选中的。 注:如果不选中,最好把Property的设置为””,因为在Action中得到...
可以自动生成sql语句的工具。可以生成formbean及增删改查等基本代码。参数输入表名称即可。
一个配置好的ActionForm对象被创建,并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的 Validate()验证后选择将请求发送到哪个...
FormBeanUtil.rar 从javaeye拷贝下来,为aiaiya下载
为了进一步熟悉SSM框架,我单独摘出了mybatis部署在普通的java Web项目上,从spring上插入了依赖注入,自己根据反射编写了一个映射工具类,可以根据前端返回的信息来封装bean FormBean如下 public class FormBean { ...