Webwork2 tutorial (Chinese version) (4.1)

zhaozj2021-02-16  94

4, view

There are several techniques as a view that can be used:

l JSP: This is a well-known technology that Java web developers can be used as a general choice; this tutorial introduces the use of Webwork in JSP

l Velocity: A Java-based template engine, providing simple and powerful template language VTL to replace JSP, separating Java code from the web page

l FreeMaker: For MVC mode design, another JAVA-based template engine that can replace JSP, but compatible with JSP tags

4.1, use JSP as a view

With JSP rendering views, you can use Scriptlets or WebWork tags to access data of the action. It is recommended to use the WebWork tag library.

(1) Access the ACITION data using Scriptlets

In ScriptleTs, you are using the Value Stack object to access the Action data. Below is the result output page of the second example in the previous section using the ScriptleTs:

<% @ Page Import = "com.opensymphony.xwork.util.ognlvaluestack"%>

Webwork Tutorial - Lesson 4.1 - Lesson 3's Example Modified </ Title></p> <p></ hEAD></p> <p><body></p> <p><%</p> <p>Ognwateck Stack = (OgnwaStack) Request.GetaTribute ("Webwork.Valuestack");</p> <p>Out.write ("Hello," Stack.FindValue ("Person");</p> <p>%></p> <p></ body></p> <p></ html></p> <p>However, it is recommended to use the WebWork tag, as in the second example in the last section, with a clear grammar, and can be processed when the Value Stack object does not exist.</p> <p>(2) Use the WebWork tag library</p> <p>The WebWork tag library can be divided into 7 categories:</p> <p>l General Mark: The most common basic marker;</p> <p>l Component Tag: Generate a component in the view;</p> <p>l Process Control Tag: Controlling the process in JSP;</p> <p>l Iteration tag: Traverse access element or operation can be traversed objects;</p> <p>l UI tag: Generate an HTML form field and control;</p> <p>l VUI tag: (requires volunteers to write);</p> <p>l Internationalized marks: makes views international;</p> <p>(1) Universal tag</p> <p><ww: property /></p> <p>Get the result attribute value; if the value does not exist, return the top value in the Value Stack</p> <p><ww: push /></p> <p>Push value into Value Stack</p> <p><ww: param /></p> <p>Set the parameter (attribute) value of the parent tag; the tag can only be used inside other tags</p> <p><ww: set /></p> <p>Sets the object value of the value of the specified range (Page, Stack, Application, Session) in the Value Stack; if no value is specified, use the top value in the Value Stack <WW: URL /></p> <p>Create an encoded URL</p> <p>(2) Component marker</p> <p><ww: action /></p> <p>Perform an action in the context of Taglib, the marker is used to display the response result of the action.</p> <p><ww: bean /></p> <p>Create a JavaBean in ActionContext, instantize its properties so that you can use it later.</p> <p><ww: incrude /></p> <p>Contains another page or action</p> <p>(3) Process control marker</p> <p><ww: if /></p> <p>If the condition tagged Boolean expression is true, the contents of the standard</p> <p><WW: ELSE /></p> <p>If the Boolean expression of the previous condition is false, the contents of the computing mark</p> <p><ww: elseif /></p> <p>If the front condition tag is false, the Boolean expression of this condition is TRUE, the content of the calculation mark</p> <p>(4) Iteration tag</p> <p><ww: iperator /></p> <p>Traverse a collection</p> <p><ww: generator /></p> <p>Generate traversal objects</p> <p><ww: append /></p> <p>Add traversal objects</p> <p><ww: subsset /></p> <p>Get a subset of traversal objects</p> <p><ww: merge /></p> <p>Merge several traversal objects are one.</p> <p>(5) UI tag</p> <p>Generating the UI tag for the HTML form control and the WebWork core is designed to minimize the number of compilation code logic and use the template system to present the representative of HTML. The UI marker covers most common tags, and provides a component tag to create a custom component. The UI tag also provides built-in support to display intact error message. Detailed introduction to the UI tag, is described in the next section.</p> <p>(6) VUI tag</p> <p>Volunteers are needed to write.</p> <p>(7) Internationalization markers</p> <p><ww: text /></p> <p>Print international string</p> <p><ww: i18n /></p> <p>Place a resource into the Value Stack so that <ww: text /> tag is used</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-13752.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="13752" 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.043</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 = '1AoX8rfgpGZF1fCgr_2Bpg981SpxR9C0zCAj3_2FA2fu8bueeGJCNoU2laeodaAK3RS6uGo9nmUVU2NICUfJBKlhYw_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>