First Spring MVC program

xiaoxiao2021-03-06  36

Ready to start researching Spring, today put the development environment well, then take the first MVC app with the Tutorials (developing a spring framework mvc appliological step-by-step) of Spring! To simplify, I deleted a lot of unnecessary things in the example, leaving only one of the simplest MVC applications.

Development Environment: Windows XP SP1 ENGLISH, Eclipse 3.0, Tomcat 5.0, Spring 1.1RC2

Function: Implement a SpringAppController and a view.jsp, SpringAppController is responsible for receiving a hello.c command, then create Model, rendering View.jsp.

First create a springApp project under Eclipse (you can also use Eclipse, but you have to trouble a little), build the necessary directory structure and file:

Among them, 3 JAR files under web / web-inf / lib / next can be found in Spring's DIST and LIB directories, then we will write a SpringAppController.java first:

import org.springframework.web.servlet.mvc.Controller; import org.springframework.web.servlet.ModelAndView; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class SpringappController implements Controller {public ModelAndView handleRequest (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {return new ModelAndView ( "view.jsp", "model", "Hello, world!");} }

The Model created here Controller is just a simple string. In the actual application, the Controller should receive the URL parameters, then access the business layer to get Model.

Then create view.jsp to render the results, use the JSTL tag:

<% @ Page session = "false"%>

<% @ Page session = "false"%> <% @ taglib prefix = "c" URI = "http://java.sun.com/jstl/core"%> <% @ Taglib prefix = "fmt" URI = "http://java.sun.com/jstl/fmt"%> view.jsp </ title> </ head> <body bgcolor = "# fffff"> Result: <C : Out value = "$ {model}" /> </ body> </ html> Next is to create web.xml, the URL ended with ".c" will be mapped to Spring's DispatcherServlet:</p> <p><? XML Version = "1.0" encoding = "UTF-8"?> <! doctype web-app public '- // sun microsystems, Inc.//dtd Web Application 2.3 // en' 'http: // java. Sun.com/dtd/web-app_2_3.dtd '> <web-app> <servlet> <servlet-name> springapp </ servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet </ servlet -Class> <load-on-startup> 1 </ loading-on-startup> </ servlet> <servlet-maping> <servlet-name> springapp </ servlet-name> <url-pattern> *. c </ URL-PATTERN> </ servlet-maping> </ web-app></p> <p>SpringApp-servlet.xml required for Spring MVC:</p> <p><? XML Version = "1.0" encoding = "UTF-8"?> <! doctype beans public "- // Spring // DTD bean //" http://www.springframework.org/dtd/spring- beans.dtd "> <beans> <bean id =" springappController "class =" SpringappController "/> <bean id =" urlMapping "class =" org.springframework.web.servlet.handler.SimpleUrlHandlerMapping "> <property name =" Mappings> <props> <prop key = "/ hello.c"> SpringAppController </ prop> </ props> </ property> </ bean> </ beans> Last written an ANT script, just that you want to change is just Set the path of the variable tomcat.home to the actual path on your machine:</p> <p><? XML Version = "1.0"?> <project name = "Springtest" default = "deploy"> <proteTY name = "src.dir" value = "src" /> <property name = "Web.dir" value = "Web" /> <property name = "build.dir" value = "$ {web.dir} / web-inf / class" /> <! - Tomcat Home Dir -> <property name = "Tomcat.home "value =" d: / software / tomcat "/> <property name =" deploy.dir "value =" $ {tomcat.home} / webapps / springtest "/> <target name =" build "> <mkdir dir = "$ {Build.dir}" /> <javac srcdir = "$ {src.dir}" destdir = "$ {build.dir}" target = "1.4"> <classpath> <fileset file = "$ {web. DIR} / web-inf / lib / *. jar "/> <fileset dir =" $ {Tomcat.Home} / common / lib "> <include name =" servlet * .jar "/> </ fileset> </ ClassPath> </ javac> </ target> <target name = "deploy" depends = "build"> <mkdir dir = $ {deploy.dir} "/> <copy today =" $ {deploy.dir} "> <fileset dir = "$ {Web.dir}"> <include name = "** / *. *" /> </ files ET> </ copy> </ target> </ project> Datual! Run Ant, start Tomcat after successful, then enter "http:// localhost: 8080 / springmvc / hello.c" in your browser:</p> <p>OK! View.jsp shows the value of Model "Hello, World!". If an error occurs, carefully check the desired JAR file and the setting of the Tomcat path.</p> <p>related resources:</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-64933.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="64933" 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.058</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 = '3Z1PQUpv1JeuHemK3kAwGHKWS2MARYQmHGPClf5AXD5SuV35ykFaHIE3kQc_2FwlwPXFb9bdtMlWfZ7z0cgXi7ZQ_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>