zoukankan      html  css  js  c++  java
  • struts2-8-实验一添加书籍-db|vo|dao|action|view

    一:使用集合模拟数据库--->nuc.sw.db--->BookDB.java

         

     1 package nuc.sw.db;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import nuc.sw.vo.Book;
     7 
     8 public class BookDB {
        //定义静态集合,类可以打点调用,并且类的多个对象也可以使用
    9 public static List<Book> bookList=new ArrayList<Book>(); 10 }

    二:封装对象(书)--->nuc.sw.vo--->Book.java

    package nuc.sw.vo;
    
    public class Book {
      private String bookName;
      private String bookAuthor;
      private float bookPrice;
    public String getBookName() {
        return bookName;
    }
    public void setBookName(String bookName) {
        this.bookName = bookName;
    }
    public String getBookAuthor() {
        return bookAuthor;
    }
    public void setBookAuthor(String bookAuthor) {
        this.bookAuthor = bookAuthor;
    }
    public float getBookPrice() {
        return bookPrice;
    }
    public void setBookPrice(float bookPrice) {
        this.bookPrice = bookPrice;
    }
      
    }

    三:借助DAO层往数据库(集合)添加书籍并且获取集合

    package nuc.sw.dao;
    
    import java.util.List;
    
    import nuc.sw.db.BookDB;
    import nuc.sw.vo.Book;
    
    public class BookDAO {
        //添加书籍方法
        public void addBook(Book book){
            BookDB.bookList.add(book);
        }
        //获取书籍方法
        public List<Book> getBook(){
            return BookDB.bookList;
        }
    }

    四:相应的action中调用DAO中的方法--->nuc.sw.action--->BookAction.java

    package nuc.sw.action;
    
    import java.util.List;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    
    import nuc.sw.dao.BookDAO;
    import nuc.sw.vo.Book;
    
    public class BookAction extends ActionSupport implements ModelDriven<Book>{
    
        Book b=new Book();
        //后期用到添加书和获取书的方法。所以要创建对象
        BookDAO bookDAO=new BookDAO();
        //模型驱动
        @Override
        public Book getModel() {
            // TODO Auto-generated method stub
            return b;
        }
       
        public String addBookMethod() throws Exception {
        // TODO Auto-generated method stub
            bookDAO.addBook(b);
            return "addOK";
      }
        
        public String getBookMethod() throws Exception {
            // TODO Auto-generated method stub
            List<Book> bList=bookDAO.getBook();
            ActionContext.getContext().getSession().put("bList", bList);
            return "getOK";
        }
    }

    五:View中写添加书籍和获取书籍的jsp页面--->addBook.jsp--->showBook.jsp

     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10 <form action="addBookAction" method="post">
    //name和Book.java中一样
    11 书名:<input type="text" name="bookName"> <br> 12 作者:<input type="text" name="bookAuthor"><br> 13 价格:<input type="text" name="bookPrice"><br> 14 <input type="submit" value="添加"> 15 </form> 16 </body> 17 </html>
     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8" import="nuc.sw.vo.Book,java.util.*"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10   <table border="1">
    11          <caption>全部书籍信息</caption>
    12          <tr>
    13           <td>书名:</td>
    14           <td>作者:</td>
    15          <td>定价:</td>
    16   </tr>
    17   <% 
    18         Iterator<Book> iter=((ArrayList<Book>)session.getAttribute("bList")).iterator();  
    19         while(iter.hasNext()){
    20           pageContext.setAttribute("book",iter.next());
    21    %>
    22      
    23     <tr>
    24       <td>${book.bookName} </td>
    25       <td>${book.bookAuthor} </td>
    26       <td>${book.bookPrice} </td>
    27    </tr>    
    28 <%
    29     }
    30 %>
    31 
    32 </table>
    33 </body>
    34 </html>

    六:配置struts.xml文件

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4     "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 
     6 <struts>
     7  <constant name="struts.devMode" value="true" />
     8  <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
     9  <package name="default" namespace="/" extends="struts-default">
    10     <action name="LoginReg"  method="LoginMethod" class="nuc.sw.action.LoginRegAction">
    11          <result name="success">/welcome.jsp</result>
    12          <result name="error">/login.jsp</result>
    13          <result name="input">/login.jsp</result>
    14      </action>
    15      <action name="RegisterReg"  method="RegisterMethod"  class="nuc.sw.action.LoginRegAction">
    16          <result name="success">/register.jsp</result>
    17          <result name="error">/login.jsp</result>
    18          <result name="input">/login.jsp</result>
    19      </action>
    20      <action name="addBookAction" class="nuc.sw.action.BookAction" method="addBookMethod">
    //结果类型使用chain 可以实现请求转发 从action--->action
    21 <result name="addOK" type="chain">getBookAction</result> 22 </action> 23 <action name="getBookAction" class="nuc.sw.action.BookAction" method="getBookMethod"> 24 <result name="getOK">/showBook.jsp</result> 25 </action> 26 </package> 27 <!-- Add packages here --> 28 </struts>

    七:项目结构

    八:运行结果

      添加书籍:

          

          

          

            显示书籍:

            

            

  • 相关阅读:
    SQL-----DML
    C#常见笔试题
    事务
    HTM5制作的闹钟
    InforPath获取当前用户
    邮件中的样式问题
    InforPath的几个基础性的东西
    代码读取InforPath内容并进行修改
    python操作mysql(4)--增删改查
    python操作mysql(3)--链接数据库
  • 原文地址:https://www.cnblogs.com/Z-D-/p/5957068.html
Copyright © 2011-2022 走看看