Dynamic Form fields in Webwork

xiaoxiao2021-03-06  60

(Reprint, please indicate the source, the author.)

Dynamic Form fields in Webwork

=========================

Under normal circumstances, WebWork uses field drivers or model drivers to get data in the form. (Ordinary form)

However, in case, the content of the field that needs to be edited is dynamically changed, and the determined class is not used to make mappings.

At this point, I think of the following ways to solve:

1. Use the internal object of WebWork to remove all parameters

ActionContext context = actionContext.getContext ();

Map params = context.getParameters ();

Operate Params to get all parameters

2. Maps using MAP

Map has GET, PUT functions, such as Get ("Name"), PUT ("Name", "SCUD")

After the test (there is no description of the document, the webwork document is still very small, or I have not read)

The mapping in the form uses this way:

The reading value is adopted by Fields ['Name'], which is mentioned in this document.

The specific documents are as follows:

A: Enter page

<% @ Taglib Uri = "Webwork" prefix = "ww"%>

Webwork test 2 </ title></p> <p></ hEAD></p> <p><body></p> <p><p> what's your name? </ p></p> <p><form action = "hello.action" method = "post"></p> <p><p></p> <p><Input Type = "text" name = "field.person" /> <br></p> <p><Input Type = "Submit" /></p> <p></ p></p> <p></ form></p> <p></ body></p> <p></ html></p> <p>B: Success Turning Page</p> <p><% @ Taglib Uri = "Webwork" prefix = "ww"%></p> <p><html></p> <p><HEAD></p> <p><title> Webwork test 2 </ title></p> <p></ hEAD></p> <p><body></p> <p>Hello, <ww: proty value = "Field ['Person']" /> <br></p> <p></ body></p> <p></ html></p> <p>C: Used Action Class</p> <p>Package helloworld;</p> <p>Import com.opensymphony.xwork. *;</p> <p>Import java.util. *;</p> <p>Public Class HelloAction Extends ActionSupport</p> <p>{</p> <p>Private map far = new hashmap ();</p> <p>Public String Execute () THROWS EXCEPTION</p> <p>{</p> <p>RETURN SUCCESS;</p> <p>}</p> <p>Public void setfield (Map Field)</p> <p>{</p> <p>THIS.FIELD = Field;}</p> <p>Public Map getField ()</p> <p>{</p> <p>Return Field;</p> <p>}</p> <p>}</p> <p>D: Some configuration inside xwork.xml</p> <p><action name = "hello" class = "HelloWorld.HelloAction"></p> <p><result name = "error" type = "dispatcher"> EX02-index.jsp </ result></p> <p><result name = "success" type = "dispatcher"> eX02-surcess.jsp </ result></p> <p></ action></p> <p>3. Use user custom classes to implement</p> <p>This approach is discussed, and the user's class may need a function of getxxxx (String SKEY).</p> <p>to sum up:</p> <p>Of course, there should be other ways to achieve, and it may be better, but I just seeing Webwork in a few days, I proposed the above method for my concern, definitely a relatively simple idea.</p> <p>If there are other methods, please don't worry.</p> <p>Webwork's information is too small ....</p> <p>(Reprint, please indicate the source, the author.)</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-112794.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="112794" 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 = 'lt5H41j_2F4KkpLBDxcDqzYuBghgpeXLNvklZEinkSE31hFA2tZmlNUwzJu0Ctyqa9XFVYWbdTT_2FlfMIvoWuk3Lg_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>