How to implement Struts database applications (1)

zhaozj2021-02-16  48

How to implement Struts database applications

[Related Links]

"JavaWebstudio Series Development Tools Visaul Struts Version" http://dev.9cbs.net/develop/Article/28/28871.shtm

"How to achieve the simplest Struts program" http://dev.9cbs.net/develop/Article/28/28946.shtm

"The implementation of the Struts drop-down box" http://dev.9cbs.net/develop/Article/28/28956.shtm

"The implementation of the Sruts radio box" http://dev.9cbs.net/develop/Article/29/29042.shtm

"Struts check box" http://dev.9cbs.net/develop/Article/29/29043.shtm

"The relationship between the Struts programs (1)" http://dev.9cbs.net/develop/Article/29/29131.shtm

The relationship between the "Struts program each file (2)" http://dev.9cbs.net/develop/Article/29/29133.shtm

"How to implement struts database applications"

"How to implement pagination in the Struts database application"

"How to implement records, updates, and links in Struts database applications"

"How to implement records in the Struts database application"

"How to build a Struts database application with landing page"

"How to build a Struts database application with landing page and role"

The above example development environment: Java Web Studio Series Development Environment Visual Strutst version.

The latest JavaWebStudio download address: ftp: //210.36.64.79/kui

[the goal]

The goal of this example is to implement a simple Struts database application. Its function is to read data from SQL Server 2000 and displayed in the output page in the form of a table.

Define a field named "Test" table:

Enter some test data:

[effect]

(1) All shows:

Enter the page:

Output page:

(2) Query display:

[background knowledge]

[step]

1. Open the Visual Struts development environment:

Start JavaWebStudio.exe files from the desktop JavaWebstudio fast or bin directory launched the Visual Struts development environment of JavaWebStudio.

2. Create an "empty Struts database application template application" application:

Select the menu "File" - "New" - "New Project", pop up the new project dialog, as shown in Figure 3-1:

Select "Empty Struts Database Application Template" in the dialog box, enter "DBAPP", Package (Package Name) and location in the project name, using the default value, and certainly can be changed as needed. Finally, click the "OK" button to complete the establishment of the new project.

As you can see from the file manager, the file structure of the DBAPP project is as follows:

In the root of the DBAPP project, you contain four subdirectories and two files, which is the standard structure of the JSPStudio project, it is best not to change their default names, otherwise there will be problems.

3. Use the Struts Database Application File Wizard to establish a new application:

At the JSPStudio file manager, click the right mouse button. In the pop-up menu, select "Struts Database Application File Wizard" into the Struts File Wizard dialog, or select the menu "file" - "New" - "Struts Database Application File Wizard" The Struts File Wizard dialog box. As shown below:

(1) Enter the file name:

(2) Import the field information of the SQL statement and the data table from the data source (field name, and field type): (3) Select the desired table "Test" from the data table.

It is important to note that the "Field information of the SQL statement and data table from the data source" and "Select the table from the data table" is merely generated to automatically generate SQL statements and read field information, here Complete can be manually entered directly, unrelated to the configuration of the database connection pool, below, and then configure the database connection pool separately.

Next, configure the database connection pool, and other property pages can be used by default, and the data connection configuration property page is directly turned directly.

(4) Configure the database connection pool:

This example only uses a system default variable MyBeanVariable1, and it saves the input data.

4, project file structure

Project directory structure analysis See "How to achieve the simplest struts program", this Struts database application file wizard automatically generates six files, where the web directory is input, output two JSP files, the SRC directory is a Java file. All program source code is automatically generated by the file wizard except that the file name is automatically generated, and all configurations are also automatically completed.

Refresh the JSPStudio file manager, then discover two files automatically in the web directory, which is dblist.jsp and dblist.jsp, the former is an input JSP file, the latter is an output JSP file; SRC / EMPTYPRJ directory automatically generated Four files, are dblist action.java and dblist form.java, the former is an action file, the latter is a formaction file; there is a database operation file dblist.java and dblistdao.java, the former is used to save data table recorded Bean The latter is a database operation DAO file.

DBList.jsp file:

DBListOut.jsp file:

5, compile, start the server, run:

Compile the project and start the server separately by the button on the toolbar, then the dblist.jsp runs dblist.jsp by the "Run" button on the toolbar:

First try all the display functions, click the "All Display" button, if shown in the following figure:

One to try the lookup function, enter the number 3 in the text box, click the "Find" button, if shown in the following picture:

Through the above steps, the estimated target function is achieved.

[Program source code]

DBList.jsp file:

DBListOut.jsp file:

<% @ page contenttype = "text / html; charset = GB2312" Language = "java"%>

<% @ Taglib URI = "/

Web

-

Inf

/struts-bean.tld "prefix =" bean "%>

<% @ Taglib URI = "/

Web

-

Inf

/struts-html.tld "prefix =" html "%>

<% @ Taglib URI = "/

Web

-

Inf

/struts-logic.tld "prefix =" Logic "%>

<% @ Taglib URI = "/

Web

-

Inf

/struts-template.tld "prefix =" template "%>

</ title></p> <p><HTML: BASE /></p> <p></ hEAD></p> <p><body bgcolor = "white"></p> <p><table width = "98%" border = "1" bgcolor = "# e6f2e7" bordercolordark = "# fff" bordercolorlight = "# 008000" Cellpadding = "3" cellspacing = "0"></p> <p><tr bgcolor = '# 90c090'></p> <p><TD> <span contentteditable = true> Sequence number </ span> </ td></p> <p><TD> <span contenttedITable = true> Name </ span> </ td></p> <p><TD> <span contentteditable = true> Remarks </ span> </ td></p> <p></ TR></p> <p><logic: Itereate Name = 'dblist' id = 'dblist' type = 'emptyprj.dblist' scope = 'request'></p> <p><logic: Notequal name = 'dblistform' proteTy = 'action' value = 'edit'></p> <p><tr></p> <p><TD> <bean: Write Name = 'dblist' proteTy = 'serial number' /> </ td></p> <p><TD> <bean: Write Name = 'dblist' Property = 'Name' /> </ TD></p> <p><TD> <bean: Write Name = 'dblist' Property = 'Note' /> </ td></p> <p></ TR></p> <p></ logic: Notequal></p> <p><logic: equal name = 'dblistform' protety = 'action' value = 'edit'></p> <p><tr></p> <p><form method = 'pos' name = 'dblistform'</p> <p>Action = "/ dbapp / dblistAction.do? action = update & search = Search</p> <p>& Expression = <bean: Write name = 'dblist' print = 'serial number' />>>>>>></p> <p><TD> <HTML: Text Name = 'dblist' Property = 'Serial' /> </ TD></p> <p><TD> <HTML: Text Name = 'DBLIST' Property = 'Name' /> </ TD> <TD> <HTML: Text Name = 'DBList' Property = 'Note' /> </ TD></p> <p></ TR></p> <p></ logic: Equal></p> <p></ logic: Iterate></p> <p><TR> <TD Align = Middle Colspan = 4> </ TD> </ TR></p> <p></ TR></p> <p></ TABLE></p> <p></ body></p> <p></ html: html></p> <p>DBList.java file:</p> <p>This defines a bean for saving data table data, its variables are completely corresponding to the fields of the database table, that is, the fields to find with the SQL statement in the Database Application File Wizard.</p> <p>DBListDao.java file:</p> <p>Here, a DAO class is defined to implement functions such as data plus, delete, update, add, and generate zone strings.</p> <p>DBListform.java file:</p> <p>Here, an ActionForm bean is defined, in addition to the full corresponding variable with the field of the database table (for example, the value of the variable of the corresponding fields can be used to save the corresponding fields, and the data of a row record is also included, and variables related to the paging For example, a variable such as a current page number, a page string.</p> <p>DBListAction.java file:</p> <p>Here, an Action class is defined to implement the forwarding function of the page, and additional operations of different request types are also included. The Action variable represents an operation type, which is equivalent to the event type. Through this variable, it has achieved similar.</p> <p>Net</p> <p>The function of "event drive".</p> <p>Web.xml file:</p> <p>Here, in addition to the general Struts project configuration, it includes the configuration of the database connection pool, see the code of the dark body part.</p> <p>Struts-config.xml file:</p> <p>In addition, the project also includes the implementation file of the database connection pool ConnectionPool.java and the database connection pool, DBINITSERVLET.JAVA. The code for these two files is omitted here. If the reader needs to download Java Web Studio.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-25857.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="25857" 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.045</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 = 'Q4Z4DwT5SqIoQcGJIzAu7SJGYGJhd8ySwf_2FnDbisEqmoMHECDdsZTOpiFrJoD0Y4D6S_2FZuyv49lZsEX5RYrwrg_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>