📄 actionhelper.java
字号:
package ddd.com.action;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.lang.reflect.*;
import ddd.com.parse.ActionParser;
import ddd.com.config.*;
import ddd.com.ConfigConstants;
import ddd.com.form.*;
public class ActionHelper
{
private HashMap actionMap;
private HashMap formbeanMap;
public ActionHelper(ServletContext sct)
{
ActionParser actionParser=new ActionParser();
actionParser.init(sct,ConfigConstants.XMLSOURCE);
actionMap=actionParser.getActions();
formbeanMap=actionParser.getFormbeans();
}
public ActionConfig getActionConfig(String path)
{
return (ActionConfig)actionMap.get(path);
}
public Action getAction(ServletContext sct,HttpServletRequest req,String path)
{
HashMap actions=(HashMap)sct.getAttribute("actions");
if(actions==null)
{
actions=new HashMap();
sct.setAttribute("actions",actions);
}
Action action=(Action)actions.get(path);
if(action==null)
{
ActionConfig aConfig=(ActionConfig)actionMap.get(path);
if(aConfig!=null)
{
try
{
action=(Action)Class.forName(aConfig.getType()).newInstance();
actions.put(path,action);
}
catch(Exception e)
{
sct.log("getAction",e);
}
}
}
return action;
}
public ActionForm getActionForm(ActionConfig aConfig,ServletContext sct,
HttpServletRequest req,String path)
{
String name=aConfig.getName();
if(name!=null)
{
HashMap forms=(HashMap)sct.getAttribute("forms");
if(forms==null)
{
forms=new HashMap();
sct.setAttribute("forms",forms);
}
ActionForm form=(ActionForm)forms.get(name);
FormbeanConfig formbeanConfig=(FormbeanConfig)formbeanMap.get(name);
if(formbeanConfig!=null)
{
try
{
Class formClass=Class.forName(formbeanConfig.getType());
if(form==null)
{
try
{
form=(ActionForm)formClass.newInstance();
}
catch(Exception e)
{
sct.log("getActionForm",e);
}
}
else
form.reset();
Field[] fs=formClass.getDeclaredFields();
for(int i=0;i<fs.length;i++)
{
String fieldname=fs[i].getName();
String methodname="set"+Character.toUpperCase(fieldname.charAt(0))+fieldname.substring(1);
String value=req.getParameter(fieldname);
Method m=formClass.getDeclaredMethod(methodname,new Class[]{fs[i].getType()});
m.invoke(form,new Object[]{value});
}
forms.put(name,form);
}
catch(Exception e)
{
sct.log("getActionForm",e);
}
return form;
}
else
{
sct.log("getActionForm formbeanConfig==null");
return null;
}
}
else
{
sct.log("getActionForm name==null");
return null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -