JEECG单表模型初识-增删改查

今天就从单表哦模型开始学习吧!系统初始化以及系统登录在此就先不说了,在JEECG帮助文档中写的很详细了,我用的是Oracle数据库

登录系统后:如下界面

用的版本是JEECG_v3.1版本

点击单表模型会进入单表模型数据列表页面。

这个功能页面设计到哪些页面,Bean类以及配置文件呢,并且在增删改查的操作的时候请求是怎么执行的呢,我觉得明白这些后就会很容易的操作JEECG了。

首先要知道JEECG_3.1使用的框架是:spring MVC+Hibernate4+UI快速开发库+Spring JDBC+Highcharts图形报

  1. 涉及到哪些文件呢?(实际上操作的是人员信息,但是用的是Note(公告)关键词,这倒是不影响我们理解)
  • WebRoot/webpage/jeecg/demo/test/jeecgNote.jsp --这是Form页面,添加页面与修改页面是同一个页面
  • WebRoot/webpage/jeecg/demo/test/jeecgNoteList.jsp --这是List页面
  • src/jeecg/demo/controller/test/jeecgNoteController.java --这是业务处理及转发的C层,主要的业务处理在此
  • src/jeecg/demo/entity/test/jeecgNoteEntity.java ---这是Entity类
  • src/jeecg/demo/service/test/JeecgNoteServiceI.java --这是Sercice的接口类
  • ser/jeecg/demo/service/impl/test/JeecgNoteServeceImpI.java  --这是实现了serviceI的接口类
  • WEB-INF/web.xml --这里配置了servlet
  • src/resources/spring-mvc.xml

       2.添加操作:

      操作页面

 

 

那么怎么跳转到这个页面的呢?

那首先要看看点击录入按钮,做了什么事情

看一下List页面,录入按钮代码:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <t:dgToolBar title="录入" icon="icon-add" <span style="color:#ff0000;">url="jeecgNoteController.do?addorupdate"</span> funname="add" operationCode="add"></t:dgToolBar>  

看到url的值是"jeecgNoteController.do?addorupdate"

什么意思呢?

jeecgNoteController.do通过web.xml的servlet转发到注解了

@Controller
@RequestMapping("/jeecgNoteController")

的Controller类

addorupdate的意思是传递一个参数,值为addorupdate,就会执行该Controller类的被@RequestMapping(params = "addorupdate")注解的方法。

Controller类的代码如下:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. package jeecg.demo.controller.test;  
  2. import java.util.List;  
  3.   
  4. 略..  
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /**    
  2.  * @Title: Controller 
  3.  * @Description: 公告 
  4.  * @author zhangdaihao 
  5.  * @date 2013-03-12 14:06:34 
  6.  * @version V1.0    
  7.  * 
  8.  */  
  9. <span style="color:#ff0000;">@Controller  
  10. @RequestMapping("/jeecgNoteController")  
  11. </span>public class JeecgNoteController extends BaseController {  
  12.     /** 
  13.      * Logger for this class 
  14.      */  
  15.     private static final Logger logger = Logger.getLogger(JeecgNoteController.class);  
  16.   
  17.     @Autowired  
  18.     private JeecgNoteServiceI jeecgNoteService;  
  19.     @Autowired  
  20.     private SystemService systemService;  
  21.     private String message;  
  22.       
  23.     public String getMessage() {  
  24.         return message;  
  25.     }  
  26.   
  27.     public void setMessage(String message) {  
  28.         this.message = message;  
  29.     }  
  30.   
  31.   
  32.     /** 
  33.      * 公告列表 页面跳转 
  34.      *  
  35.      * @return 
  36.      */  
  37.     @RequestMapping(params = "jeecgNote")  
  38.     public ModelAndView jeecgNote(HttpServletRequest request) {  
  39.         return new ModelAndView("jeecg/demo/test/jeecgNoteList");  
  40.     }  
  41.   
  42.     /** 
  43.      * easyui AJAX请求数据 
  44.      *  
  45.      * @param request 
  46.      * @param response 
  47.      * @param dataGrid 
  48.      * @param user 
  49.      */  
  50.   
  51.     @RequestMapping(params = "datagrid")  
  52.     public void datagrid(JeecgNoteEntity jeecgNote,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {  
  53.         CriteriaQuery cq = new CriteriaQuery(JeecgNoteEntity.class, dataGrid);  
  54.         //查询条件组装器  
  55.         org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, jeecgNote);  
  56.         this.jeecgNoteService.getDataGridReturn(cq, true);  
  57.         TagUtil.datagrid(response, dataGrid);  
  58.     }  
  59.   
  60.     /** 
  61.      * 删除公告 
  62.      *  
  63.      * @return 
  64.      */  
  65.     @RequestMapping(params = "del")  
  66.     @ResponseBody  
  67.     public AjaxJson del(JeecgNoteEntity jeecgNote, HttpServletRequest request) {  
  68.         AjaxJson j = new AjaxJson();  
  69.         jeecgNote = systemService.getEntity(JeecgNoteEntity.class, jeecgNote.getId());  
  70.         message = "删除成功";  
  71.         jeecgNoteService.delete(jeecgNote);  
  72.         systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);  
  73.           
  74.         j.setMsg(message);  
  75.         return j;  
  76.     }  
  77.   
  78.   
  79.     /** 
  80.      * 添加公告 
  81.      *  
  82.      * @param ids 
  83.      * @return 
  84.      */  
  85.     @RequestMapping(params = "save")  
  86.     @ResponseBody  
  87.     public AjaxJson save(JeecgNoteEntity jeecgNote, HttpServletRequest request) {  
  88.         AjaxJson j = new AjaxJson();  
  89.         if (StringUtil.isNotEmpty(jeecgNote.getId())) {  
  90.             message = "更新成功";  
  91.             jeecgNoteService.saveOrUpdate(jeecgNote);  
  92.             systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);  
  93.         } else {  
  94.             message = "添加成功";  
  95.             jeecgNoteService.save(jeecgNote);  
  96.             systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);  
  97.         }  
  98.           
  99.         return j;  
  100.     }  
  101.   
  102.     /** 
  103.      * 公告列表页面跳转 
  104.      *  
  105.      * @return 
  106.      */  
  107.     <span style="color:#ff0000;">@RequestMapping(params = "addorupdate")  
  108.     public ModelAndView addorupdate(JeecgNoteEntity jeecgNote, HttpServletRequest req) {  
  109.         if (StringUtil.isNotEmpty(jeecgNote.getId())) {  
  110.             jeecgNote = jeecgNoteService.getEntity(JeecgNoteEntity.class, jeecgNote.getId());  
  111.             req.setAttribute("jeecgNotePage", jeecgNote);  
  112.         }  
  113.         return new ModelAndView("jeecg/demo/test/jeecgNote");  
  114.     }  
  115. </span>}  

其实,点击录入和编辑都会执行该方法,如果是录入,那么就会展示一个空的页面,如果是编辑,那么就会从数据库中取得相应数据得到对象后放到request中返回到页面。

在页面中的对象变量为 :jeecgNotePage

该方法返回一个ModelAndView对象,这就涉及到Spring配置了,返回该对象的意思指的是要返回到jeecg/demo/test/jeecgNot.jsp页面

那么他的全路径是什么呢,那么就要参照resources/spring-mvc.xml

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <!-- 默认的视图解析器 在上边的解析错误时使用 (默认使用html)- -->  
  2. <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="3">  
  3.  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />  
  4.  <property name="contentType" value="text/html" />  
  5.  <property name="prefix" <span style="color:#ff0000;">value="/webpage/" />  
  6. /span>  <property name="suffix" value=".jsp" />  
  7. </bean>  

prefix表示定位到/webpage/目录下,所以返回页面的全路径是/webpage/jeecg/demo/test/jeecgNot.jsp,就到了我们见到的这个页面了。

 

那么录入完信息后,我们点击确定的时候又会进行哪些操作呢。

看一下点击确定按钮的时候的form跳转:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" <span style="color:#ff0000;">action="jeecgNoteController.do?save</span>">  

如以上解析,那么会找到被注解为jeecgNoteController的类中的并且注解参数为save的方法

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1.     /** 
  2.      * 添加公告 
  3.      *  
  4.      * @param ids 
  5.      * @return 
  6.      */  
  7.     <span style="color:#ff0000;">@RequestMapping(params = "save")  
  8.     @ResponseBody  
  9. </span> public AjaxJson save(JeecgNoteEntity jeecgNote, HttpServletRequest request) {  
  10.         AjaxJson j = new AjaxJson();  
  11.         if (StringUtil.isNotEmpty(jeecgNote.getId())) {  
  12.             message = "更新成功";  
  13.             jeecgNoteService.saveOrUpdate(jeecgNote);  
  14.             systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);  
  15.         } else {  
  16.             message = "添加成功";  
  17.             jeecgNoteService.save(jeecgNote);  
  18.             systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);  
  19.         }  
  20.           
  21.         return j;  
  22.     }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值