1. 动态formbean.
表单 JSP:
struts-config.xml,配置动态formbean 和 校验需要的配置文件
validation.xml 具体校验要求 配置
自定义校验器: CustomValidator.java
/** * A custom validator example * * @version $Rev: 471754 $ $Date: 2006-11-06 08:55:09 -0600 (Mon, 06 Nov 2006) $ */ public class CustomValidator { // ------------------------------------------------------------ Constructors /** * Constructor for CustomValidator. */ public CustomValidator() { super(); } // ---------------------------------------------------------- Public Methods /** * Example validator for comparing the equality of two fields * * http://struts.apache.org/userGuide/dev_validator.html * http://www.raibledesigns.com/page/rd/20030226 */ public static boolean validateTwoFields( Object bean, ValidatorAction va, Field field, ActionMessages errors, HttpServletRequest request) { String value = ValidatorUtils.getValueAsString(bean, field.getProperty()); String property2 = field.getVarValue("secondProperty"); String value2 = ValidatorUtils.getValueAsString(bean, property2); if (!GenericValidator.isBlankOrNull(value)) { try { if (!value.equals(value2)) { errors.add( field.getKey(), Resources.getActionMessage(request, va, field)); return false; } } catch (Exception e) { errors.add( field.getKey(), Resources.getActionMessage(request, va, field)); return false; } } return true; } }获得formbean的action
public class RegiserAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm daf = (DynaActionForm) form; //username password String username = daf.getString("username"); String password = daf.getString("password"); String email = daf.getString("email"); System.out.println(username); User user = new User(); BeanUtils.copyProperties(user, daf); //可以的 return super.execute(mapping, form, request, response); } }web.xml