23 #include "FormHandler.h"
25 FormHandler::FormHandler() {
30 FormHandler::~FormHandler() {
36 Logger logger = Logger::getLogger(
"FormHandler");
38 Element ele = formMap[req->getFile()];
41 ClassInfo binfo = ref.getClassInfo(ele.getAttribute(
"bean"));
42 ElementList eles = ele.getChildElements();
44 for (
unsigned int apps = 0; apps < eles.size(); apps++)
46 if(eles.at(apps).getTagName()==
"field")
48 string name = eles.at(apps).getAttribute(
"name");
49 Field fld = binfo.getField(eles.at(apps).getAttribute(
"prop"));
50 if(fld.getType()==
"string")
51 json +=
"\""+eles.at(apps).getAttribute(
"prop")+
"\": \"" + req->getQueryParam(name) +
"\",";
54 if(fld.getType()==
"int" || fld.getType()==
"long")
56 if(req->getQueryParam(name)==
"")
57 json +=
"\""+eles.at(apps).getAttribute(
"prop")+
"\": 0,";
59 json +=
"\""+eles.at(apps).getAttribute(
"prop")+
"\": " + req->getQueryParam(name) +
",";
61 else if(fld.getType()==
"double" || fld.getType()==
"float")
63 if(req->getQueryParam(name)==
"")
64 json +=
"\""+eles.at(apps).getAttribute(
"prop")+
"\": 0.0,";
66 json +=
"\""+eles.at(apps).getAttribute(
"prop")+
"\": " + req->getQueryParam(name) +
",";
68 else if(fld.getType()==
"bool")
70 if(req->getQueryParam(name)==
"")
71 json +=
"\""+eles.at(apps).getAttribute(
"prop")+
"\": false,";
73 json +=
"\""+eles.at(apps).getAttribute(
"prop")+
"\": " + req->getQueryParam(name) +
",";
78 if(json.find(
",")!=string::npos)
80 json = json.substr(0,json.length()-1);
84 string libName = Constants::INTER_LIB_FILE;
87 cerr << dlerror() << endl;
90 string meth =
"toVoidP" + ele.getAttribute(
"bean");
91 logger << (
"Fetching Formcontroller for " + ele.getAttribute(
"bean")) << endl;
92 void *mkr = dlsym(dlib, meth.c_str());
95 toVoidP f1 = (toVoidP)mkr;
96 void *_beaninst = f1(json);
98 ClassInfo srv = ref.getClassInfo(ele.getAttribute(
"controller"));
102 void *_temp = ref.newInstanceGVP(ctor);
103 argus.push_back(
"void*");
104 argus.push_back(
"HttpResponse*");
105 valus.push_back(_beaninst);
106 valus.push_back(&res);
107 Method meth = srv.getMethod(
"onSubmit",argus);
108 if(meth.getMethodName()!=
"")
110 ref.invokeMethodUnknownReturn(_temp,meth,valus);
111 logger <<
"Successfully called Formcontroller" << endl;
115 res.setHTTPResponseStatus(HTTPResponseStatus::NotFound);
116 res.setContent_type(ContentTypes::CONTENT_TYPE_TEXT_PLAIN);
117 res.setContent_str(
"Formcontroller Method Not Found");
118 logger <<
"Formcontroller Method Not Found" << endl;