Realize the automatic conversion of Struts reception parameters to the background

xiaoxiao2021-03-06  42

When using Struts, I feel useful for the front and back parameters of Struts, but I don't want to put Struts in the project, and it is impossible (some projects have been completed, and it is inconvenient to modify). So try to do the implementation in Struts. Main implementation: In the front desk HTML or JSP Submitted Form, there are many parameters, put these parameters in a bean, as long as the background is submitted, call the corresponding processing module to directly handle the parameter bean, and You don't have to do some of the front desk parameters, such as Req.GetParameter, etc., to do data isolated. The following is a class: package com.xxxx.common;

Import java.lang.reflect.field;

Import javax.servlet.http.httpservletRequest;

Public class paraPro {

public Object fillBean (HttpServletRequest req) {Object retObj = null; String BeanName = (String) req.getParameter ( "ParaClass"); System.out.println ( "bn is" BeanName); try {retObj = Class.forName ( Beanname) .newinstance ();} catch (instantiationException e) {// TODO automatically generates Catch block E.PrintStackTrace ();} catch (} catch (IllegalaccessException E) {// TODO automatically generates Catch block E.PrintStackTrace ();} catch ClassNotFoundException E) {// TODO automatically generates Catch block E.PrintStackTrace ();

Field Fields [] = retobj.getClass (). GetDeclaredfields (); string fieldName; string fieldType; string strGetParameter; for (int i = fields.length - 1; i> -1; i--) {Fields [i]. Setaccessible (TRUE); FieldName = Fields [i] .GetName (); FieldType = Fields [i] .gettype (). TOSTRING (); try {if (Req.getParameter (FieldName)! = null) {system.out. Println (FieldType.Tostring ()); if ("Class Java.Lang.integer")) {Fields [i] .SET (Retobj, New Integer (ref.getParameter (FieldName)); System.out .println ("FIELDNAME IS" FieldName "Type is" FieldType);

IF ("Class Java.lang.String"))) {Fields [i] .Set (Retobj, Req.GetParameter (FieldName)); System.out.Println ("FieldName IS" FieldName TYPE IS " FieldType);}}

} Catch (IllegalarGumentexception E1) {// TODO automatically generates Catch block E1.PrintStackTrace ();} catch (IllegalaccessException E1) {// TODO automatically generates Catch block E1.PrintStackTrace ();

}

Return Retobj;}

} The following is the process of submitted servlet: package com.xxxx.common;

Import java.io.ioException; import javax.servlet.servlet; import javax.servlet.servletException;

Import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse;

/ ** * @version 1.0 * @Author * / public class argprocess extends httpservlet imports servlet {

/ ** * @see javax.servlet.http.HttpServlet # void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) * / public void doPost (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Object Obj_tmp = null; parapro parapro = new parapro (); system.out.println ("begin" (string) Req.getParameter ("paraclass")); obj_tmp = parapro.FillBean (REQ); parabean pb = (parabean) Obj_tmp; system.out.println ("get is" pb.begindate "rate is" pb.rate);

}

} The following parameters used as the parameters: public class parabean {string begindate; string enddate; integer rate;

} The following is the HTML: < HTML> </ title> <meta content = "text / html; charSet = GB2312"> <meta content = "mshtml 5.00.3315.2870" Name = generator> </ head> <body bgcolor = # ffffff LEFTMARGIN = 0></p> <p><Form action = "/ argprocess" method = post name = login> <input type = "text" name = "begindate" size = "20" value = "20041201"> <input type = "text" name = "enddate" SIZE = "20" value = "20041231"> <input type = "text" name = "rate" size = "20" value = "3"> <input type = "subs" name = "Submit" value = "confirmation "> <Input type =" text "name =" paraclass "size =" 50 "value =" com.xxxx.parabean "> </ form></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-60416.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="60416" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.042</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'cXJbPSrP9Wa08Luy1vZdSFjJJnsD07aszsfnmr3ubJ2EA_2BOqqKthC_2BAXfS1P9kmuu5JpdMXaz_2FUViqb5gzQRZQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>