Struct 1工作原理简图
2018.12.18 gzl
1Dao数据源层—来源 dataSource
Dao层
package com.dao;
import com.core.ConnDB;
import java.util.;
import com.actionForm.BorrowForm;
import java.sql.;
import com.actionForm.ReaderForm;
import com.actionForm.BookForm;
import java.util.Date;
public class BorrowDAO {
ConnDB conn = new ConnDB();
public int insert() {
String sql = "INSERT INTO tb_borrow (bookid) vlaues(1) ";
int ret = conn.executeUpdate(sql);
return ret;
}
// *****************************图书借阅******************************
public int insertBorrow(ReaderForm readerForm, BookForm bookForm,
String operator) {
// 获取系统日期
Date dateU = new Date();
java.sql.Date date = new java.sql.Date(dateU.getTime());
String sql1 = "select t.days from tb_bookinfo b left join tb_booktype t on b.typeid=t.id where b.id="
+ bookForm.getId() + "";
ResultSet rs = conn.executeQuery(sql1);
int days = 0;
try {
if (rs.next()) {
days = rs.getInt(1);
}
} catch (SQLException ex) {
}
// 计算归还时间
String date_str = String.valueOf(date);
2Bean数据模型—M
JavaBean/继承ActionForm 接口
承上启下:上=>Dao
下=>Action
package com.actionForm;
import org.apache.struts.action.ActionForm;
public class BorrowForm extends ActionForm {
private String backTime;
private String bookBarcode;
private int bookId;
private String bookName;
private String bookcaseName;
private String borrowTime;
private Integer id;
private int ifBack;
private String operator;
private Float price;
private String pubName;
private String readerBarcode;
private int readerId;
private int degree;
private String author;
private String bookType;
private String readerName;
private String sex;
private String birthday;
private String paperType;
private String paperNo;
private String tel;
private String readerType;
public String getBackTime() {
return backTime;
}
public void setBackTime(String backTime) {
this.backTime = backTime;
}
public void setReaderId(int readerId) {
this.readerId = readerId;
}
public void setReaderBarcode(String readerBarcode) {
this.readerBarcode = readerBarcode;
}
3Service业务层—控制器C
Action/继承ActionSupport
实现数据处理业务,展示各种功能。
Execute方法,包含4个参数,
ActionMapping /ActionForm /HttpServletRequest/HttpServletResponse
1.参数ActionForm是该Action对应的数据模型(actionForm/javaBean)。
2.由ActionMapping导向的 视图。Jsp页面
3. 参数HttpServletRequest/HttpServletResponse获取或者设置传值变量。
package com.action;
import org.apache.struts.action.;
import javax.servlet.http.;
import com.dao.;
import com.actionForm.;
public class Borrow extends Action {
/在构造方法中实例化Borrow类中应用的持久层类的对象********/
private BorrowDAO borrowDAO = null;
private ReaderDAO readerDAO=null;
private BookDAO bookDAO=null;
private ReaderForm readerForm=new ReaderForm();
public Borrow() {
this.borrowDAO = new BorrowDAO();
this.readerDAO=new ReaderDAO();
this.bookDAO=new BookDAO();
}
/******************************************************************************************/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
BorrowForm borrowForm = (BorrowForm) form;
String action =request.getParameter(“action”);
if(action==null||"".equals(action)){
request.setAttribute(“error”,“您的操作有误!”);
return mapping.findForward(“error”);
}else if(“bookBorrowSort”.equals(action)){
return bookBorrowSort(mapping,form,request,response);
}else if(“bookborrow”.equals(action)){
return bookborrow(mapping,form,request,response); //图书借阅
}else if(“bookrenew”.equals(action)){
return bookrenew(mapping,form,request,response); //图书续借
}else if(“bookback”.equals(action)){
以上是实现网络 URL 数据库 视图 的基础根基。
下面解释STRUCT1 的框架工作原理
url => web.xml =>struct.xml =>
web.xml中配置struct1使用
struct1 框架中struct.xml配置方式如下:
<action
name=’actionForm名称=bean名称’ path=’/url中action名称.do?paramters=#’ type=’com.action.控制器名’ scope=’request/session/application/page之一’>