⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strutsaction.java

📁 应用泛型以及反射编写的单表操作框架
💻 JAVA
字号:
package org.langsin.core.web;


import java.util.Date;

import javax.servlet.http.HttpServletRequest;


import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DoubleConverter;
import org.apache.commons.beanutils.converters.FloatConverter;
import org.apache.commons.beanutils.converters.IntegerConverter;
import org.apache.commons.beanutils.converters.LongConverter;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
import org.langsin.core.web.support.DateConverter;
import org.langsin.core.web.support.StringConverter;
import org.springframework.util.ReflectionUtils;
/**
 * struts 基类,封装DispatchAction,提供反射机制常用的方法和类型之间的转换,处理信息等等
 * 
 * @author 不落的太阳
 * 
 */

public class StrutsAction extends DispatchAction {

	public static final String SUCCESS = "success";

	public static final String DIRECTLY_MESSAGE_KEY = "message";

	static {
		registConverter();
	}


	/**
	 * 类型之前的转换,字符串为空值时,数值默认为空
	 * 
	 */
	public static void registConverter() {
		ConvertUtils.register(new StringConverter(), String.class);
		ConvertUtils.register(new IntegerConverter(null), Integer.class);
		ConvertUtils.register(new LongConverter(null), Long.class);
		ConvertUtils.register(new FloatConverter(null), Float.class);
		ConvertUtils.register(new DoubleConverter(null), Double.class);
		ConvertUtils.register(new DateConverter("yyyy-MM-dd"), Date.class);
	}

	/**
	 * 将FormBean中的内容通过BeanUtils全部copy到Object中
	 * 
	 * @param form
	 * @param object
	 */
	protected void bindEntity(ActionForm form, Object object) {
		if (form != null) {
			try {
				BeanUtils.copyProperties(object, form);
			} catch (Exception e) {
				ReflectionUtils.handleReflectionException(e);
			}
		}
	}

		/**
	 * 将Object中的内容通过BeanUtils全部copy到FormBean中
	 * 
	 * @param form
	 * @param object
	 */
	protected void bindForm(ActionForm form, Object object) {
		if (object != null) {
			try {
				BeanUtils.copyProperties(form, object);
			} catch (Exception e) {
				ReflectionUtils.handleReflectionException(e);
			}
		}
	}

	/**
	 * 保存单条信息到Messages
	 * 
	 * @param request
	 * @param key
	 * @param values
	 */
	protected void saveMessage(HttpServletRequest request, String key, String... values) {
		ActionMessages msgs = new ActionMessages();
		msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key, values));
		saveMessages(request.getSession(), msgs);
	}

	protected void saveDirectlyMessage(HttpServletRequest request, String message) {
		ActionMessages msgs = new ActionMessages();
		msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(DIRECTLY_MESSAGE_KEY, message));
		saveMessages(request.getSession(), msgs);
	}

		/**
	 * 保存信息Error
	 * 
	 * @param request
	 * @param key
	 * @param values
	 */
	protected void saveError(HttpServletRequest request, String key, String... values) {
		ActionMessages errors = new ActionMessages();
		errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key, values));
		saveErrors(request.getSession(), errors);
	}


	protected void saveDirectlyError(HttpServletRequest request, String message) {
		ActionMessages errors = new ActionMessages();
		errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(DIRECTLY_MESSAGE_KEY, message));
		saveErrors(request.getSession(), errors);
	}
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -