Example of Webwork2 and Springframework Integration (Original) (3-2)

xiaoxiao2021-03-06  91

(3) Resultive view: Hello.jsp

l The following is Hello.JSP rewritten with WebWork2

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

<ww: text name = "'title'" /> </ title> </ head></p> <p><body></p> <p><h1> <ww: text name = "'Heading'" /> </ h1></p> <p><p> <ww: text name = "'greeting'" /> <ww: property value = "now" /></p> <p></ p></p> <p><H3> Products </ h3></p> <p><ww: orerator value = "products"></p> <p><Ww: property value = "description" /> <i> $ <ww: property value = "price" /> </ i> <br> <br></p> <p></ ww: iperator></p> <p><br></p> <p><a href="priceincreaseform.action"> increase price </A></p> <p><br></p> <p></ body></p> <p></ html></p> <p>l WebWork2 resource beam mechanism</p> <p>Ø WebWork2 disperse the resource bundle property file into each Action class, such as the webwork2 automatically finds the resource bundle required to find the SpringAppAction class in the SpringAppAction.properties with the SpringAppAction class.</p> <p>Ø If there is no springappaction.properties, it will automatically drive from the parent class ActionSupport's property file ActionSupport.properties,</p> <p>Ø Due to the ActionSupport class due to the Action class, it can be placed in ActionSupport.properties for public resource beams.</p> <p>Ø In this example, all the resource bundles are placed in the COM / OpenSymphony / Xwork / ActionSupport.properties file.</p> <p>l Use the resource bundle: You can use the <ww: text> tag in JSP to reference the resource bundle. It should be noted that the value of the Name property needs to be enclosed in single quotes.</p> <p>l Since WebWork2 has automatically pressed an action in the value stack (using OGNL) when executing the action (using OGNL), so the <ww: proty> tag obtains the attribute value of an action, where the value is specified as the corresponding attribute name of the Action.</p> <p>l <ww: iperator> tag used to traverse a collection object to access the elements in which this example uses the <ww: iterator> tag traversed the product name and price</p> <p>(4) Configuration Action: WW2 / Web-INF / CLASSES / XWORK.XML</p> <p><action name = "SpringApp"</p> <p>Class = "Web.SPRINGAPPACTION"></p> <p><external-ref name = "prodman"> Prodman </ external-ref></p> <p><result name = "success" type = "dispatcher"></p> <p><param name = "location"> / web-inf / jsp / hello.jsp </ param></p> <p></ result></p> <p></ action></p> <p>l Use the <action> tag in xwork.xml to configure the action; name attribute specifies the Action reference name; the Class property specifies the full path of the Action class</p> <p>l <external-ref> tag Specifies an external reference; the Name property value is consistent with the attribute name in the Action class.</p> <p>l <result> Mark Specifies the result view of the Action; the Name property is consistent with the flag returned by the Execute () method of the Action class, just use lowercase; Type property specifies the type type, its value has the following:</p> <p>Ø dispatcher: forwards result to the specified location URL</p> <p>Ø Redirect: redirects result to the specified position URL; different from the dispatcher is not sending form data</p> <p>Ø Velocity: Use the Velocity template as a result, need to configure VelocityServlet in web.xml</p> <p>Ø Chain: Action chain, transfer the result to the next action</p> <p>Ø XSLT: Formatting results using XSLT</p> <p>l For Dispatcher type, use the Location parameter to specify the result view URL</p> <p>(5) Test procedure</p> <p>l Since JSTL is not used, use <JSP: Forward> to SpringAppAction in Index.jsp.</p> <p><jsp: forward page = "springapp.action" /></p> <p>l In the browser, enter http: // localhost: 8888 / WW2, the entire execution process is as follows:</p> <p>Ø Show index.jsp;</p> <p>Ø The page is redirected to SpringApp.Action;</p> <p>Ø Servletdispatcher performs SpringAppAction in accordance with the MAP mapping and Action configuration;</p> <p>Ø Execute the execute () method of the springAppaction get data;</p> <p>Ø Redirect to the result view page hello.jsp According to the Action configuration</p> <p>Ø Display model data in Hello.jsp</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-122826.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="122826" 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.040</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 = 'i3r62E_2FT7rL6376rmog3QyA3QguVxkZisce0ZSz5EuITMZQnJk4sNoQ48qhosOj02DuZdpNyStHEJZQwE3UXjQ_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>