JavaJSP Learning Series (Orion Customized Tag)

zhaozj2021-02-16  55

I. Foreword (this article is translated from Orion Official Site) This article describes one step in the Orion Application Server to define its own label, then implement the tag function, and finally test with a JSP example. Second, establish a label to implement the function of the label. 1. Named package is: com.acme.mytags (in order to be the original text, I don't make a change) Package com.acme.mytags; 2.import related classimport javax.servlet.jsp. *; Import javax.servlet.jsp.tageXT . *; 3 javax.servlet.jsp.tagext.Tag implement the interface: public class HelloWorld implements tag {4. define local variables private PageContext pageContext; private tag parent; 5. method of calling tag begins public int doStartTag () throws Javax.Servlet.jsp.jspexception {return Skip_body;} Note: This method returns Skip_body, which is when the tag's body is empty, otherwise it will return: evAl_body_include6. Public INT DOENDTAG () THROWS JAVAX.SERVLET.Jsp.jspexception {Try {pageContext.get (). Write ("Hello World!");} catch (java.io.ioException e) {throw new JSPEXCEPTION ("IO Error:" E.getMessage ());} return evAl_page;} This will end the "Hello World!" 7. Isn't enough, we still have to write the following method: public void release () {} is simple Example, the above method does not require any implementation. 8.Jsp's container To call the following method: public void setPageContext (Final Javax.Servlet.jsp.pageContext PageContext) {this.pageContext = pageContext;} JSP container calls the label through the above method, and the above method is used to set the label PageContext.9.jsp's container also calls the following method: public void setparent (Final Javax.Servlet.jsp.tagext.tag parent) {this.parent = parent;} JSP container set the tag for the tab with the above method- Tag, because each tag's PageContext must keep its Parent tag. 10. Finally, implement the method: public javax.servlet.jsp.tagext.tag getparent () {return parent;}} 11. Compiling tags. Third, the descriptive tag will now write a squeezed file to describe the label.

1. Create a taglib.tld file, 2. Taglib.tld is a text file in XML format, XML's head is as follows: 3. Describe Tag Library < Taglib> 1.0 1.1 mt http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar my first tag library 4. Candle "tag> HelloWorld com.acme.mytags.HelloWorld EMPTY a hello world tag 5. End four .tld 5, use custom lables in JSP files to establish hello.jsps as follows: <% @ Taglib Uri = "MyTags.jar" prefix = "MT"%> Hello World! </ Title> </ head> <body bgcolor = "# fffff"> <hr> <mt: helloworld /> <hr> </ body> </ html> 6, the test runs in the Orion directory, established the following structure, where Tag is built by itself, the previous directory is original. E: / orion / default-web-app / tag puts all JAR files and JSP files all in this directory. Then, access: http:// localhost: [port] /tag/hello.jsp will appear: ---------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------- Hello World! --------- -------------------------------------------------- ------- Seven, congratulations, you have succeeded! Attached: mytags.jar and hello.jsp files download address: http://www.wodejia.net/softdownload/java/orion_tag01.zip</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-19790.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="19790" 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.050</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 = 'Z8xoSY5_2B1_2FWt2WaCcUYpfr6HbRHnlHTAViY_2FieCPTrJIHoqaUwPjrseqf8lOlyZLv_2Bb6dIBVoS46eGcy8Ohh_2Bg_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>