時間:2023-05-24 14:57:02 | 來源:網(wǎng)站運(yùn)營
時間:2023-05-24 14:57:02 來源:網(wǎng)站運(yùn)營
Java Web初學(xué)者探索學(xué)習(xí)筆記6—快速開發(fā)項目實例:Structs2作為控制器(Controller)來建立模型與視圖的數(shù)據(jù)交互。第一步:搭建dynamicweb項目,修改webcontext為webroot;
Hibernate主要是利用其實現(xiàn)更簡便的數(shù)據(jù)庫交互。
Spring前面都說到了,作為分層總體框架,并對以上兩者整合。
entity封裝所有的實體;第六步:UI通用架構(gòu)(比如easyUI)源文件夾拷貝到webroot下,備用和修改;
dao為數(shù)據(jù)訪問層接口,及其實現(xiàn)類的包dao.impl;
service也有將該名命為biz的,業(yè)務(wù)邏輯層接口,及其實現(xiàn)類的包service.impl;
action也有命名為web或vo的;
util為工具類包,這個包一般不加前面的域名、項目名,因為這個部分比較通用,與本項目是獨(dú)立的,可重用和被調(diào)用的;
由于eclipse有比較嚴(yán)格的js校驗,源文件夾導(dǎo)入后其中jquery.min.js文件會報錯,可以將eclipse中所在的項目配置文件.project中的JavaScriptvalidator和nuature中jsnature規(guī)則配置項刪除,然后重新進(jìn)入后,將該js文件打開后內(nèi)容剪貼粘貼后即可解決;
強(qiáng)迫癥患者建議修改,其他人不改也不影響使用;
package cn.hust.dianshang.entity;public class Dep{ private Long uuid; private String name; private String tele; get/set(默認(rèn)方法導(dǎo)入)}
編寫該類的映射文件.xml<?xml version="1.0" encoding="utf-8"><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="cn.hust.dianshang.entity.Dep" table="DEP"> <id name="uuid"> <generator class="native"/> </id> <property name="name"/> <property name="tele"/> </class name></hibernate-mapping>
第二步:數(shù)據(jù)訪問層dao類及實現(xiàn)。package cn.hust.dianshang.dao;import java.util.List;import cn.hust.dianshang.entity.Dep;/**搭建數(shù)據(jù)訪問層接口*/public interface IDepDao{ //返回所有記錄 public List<Dep> getList();}
在dao.impl包下建立實現(xiàn)類DepDao,由于其是數(shù)據(jù)訪問層的實現(xiàn)類,所以還要繼承HibernateDaoSupport的方法(部分方法省的自己實現(xiàn)了)。package cn.hust.dianshang.dao.impl;import java.util.List;/**部門數(shù)據(jù)訪問類*/public class DepDao extends HibernateDaoSupport implements IDepDao{ //返回所有記錄 public List<Dep> getList(){ return getHibernateTemplate().find("from Dep"); }}
第三步:業(yè)務(wù)邏輯層service類及實現(xiàn)。package cn.hust.dianshang.service;import java.util.List;import cn.hust.dianshang.entity.Dep;/**搭建部門業(yè)務(wù)邏輯層接口*/public interface IDepService{ //返回所有記錄 public List<Dep> getList();}
在service.impl包下建立實現(xiàn)類DepService。package cn.hust.dianshang.service.impl;import java.util.List;/**部門數(shù)據(jù)訪問實現(xiàn)*/public class DepService implements IDepService{ //由于需要調(diào)用dao的數(shù)據(jù),所以屬性中需定義IDepDao類型對象,方便調(diào)用相關(guān)方法和屬性參數(shù) private IDepDao depDao; public void setDepDao(IDepDao depDao){ this.depDao = depDao; } //返回所有記錄 @OverRide public List<Dep> getList(){ return depDao.getlist(); }}
第四步:完成action。package cn.hust.dianshang.action;import java.util.List;/**部門action*/public class DepAction{ //由于需要調(diào)用service層方法和屬性,故構(gòu)建私有屬性IDepServce private IDepServce depService; public void setDepService(IDepService depService){ this.depService = depService; } //返回所有記錄 @OverRide public String list() throw Exception { List<Dep> list = depService.getList(); //用fastjson轉(zhuǎn)換為json字符串 String jsonString = JSON.toJSONString(list); //通過servlet輸出獲取的字符串 HttpServletResponse response = ServletActionContext.getResponse(); response.setCharactorEncoding("UTF-8"); response.getWrite().print(jsonString); //由于只展示dep查詢結(jié)果,不再跳轉(zhuǎn)頁面,故return結(jié)果不再錄入,設(shè)定為null return null; }}
第五步:編寫修改配置文件。<!-- 部門數(shù)據(jù)訪問層 --><bean id="depDao" class="cn.hust.dianshang.dao.impl.DepDao"> <property name="sessionFactory" ref="sessionFactory"> </property></bean><!-- 部門業(yè)務(wù)邏輯層 --><bean id="depService" class="cn.hust.dianshang.service.impl.DepService"> <property name="depDao" ref="depDao"> </property></bean><!-- 部門action --><bean id="depAction" class="cn.hust.dianshang.action.DepAction"> <property name="depService" ref="depService"> </property></bean>
在structs.xml中配置文件。<structs> <package name="default" namespace="/" extends="structs-default"> <!-- 通配符以可以調(diào)用所有dep開頭的action方法 --> <action name="dep_*" class="depAction" method={1}></action> </package></structs>
第六步:測試后端代碼。<script type="text/javascript"> $(function()){ $('#grid').datagrid({ url:'dep_list.action', columns:[[ {field:'uuid',title:'編號',width:50}, {field:'name',title:'名稱',width:100}, {field:'tele',title:'電話',width:200} ]] }); }</script><table id="grid"> </table>
關(guān)鍵詞:實例,項目,筆記,學(xué)習(xí),學(xué)者
客戶&案例
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。