您的位置:首页 > 其它

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

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

登录系统后:如下界面



用的版本是JEECG_v3.1版本

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

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

首先要知道JEECG_3.1使用的框架是:spring MVC+Hibernate4+UI快速开发库+Spring JDBC+Highcharts图形报
涉及到哪些文件呢?(实际上操作的是人员信息,但是用的是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

 





<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

 





package jeecg.demo.controller.test;  

import java.util.List;  

  

略..  

[java] view
plain copy

 





/**    

 * @Title: Controller 

 * @Description: 公告 

 * @author zhangdaihao 

 * @date 2013-03-12 14:06:34 

 * @version V1.0    

 * 

 */  

<span style="color:#ff0000;">@Controller  

@RequestMapping("/jeecgNoteController")  

</span>public class JeecgNoteController extends BaseController {  

    /** 

     * Logger for this class 

     */  

    private static final Logger logger = Logger.getLogger(JeecgNoteController.class);  

  

    @Autowired  

    private JeecgNoteServiceI jeecgNoteService;  

    @Autowired  

    private SystemService systemService;  

    private String message;  

      

    public String getMessage() {  

        return message;  

    }  

  

    public void setMessage(String message) {  

        this.message = message;  

    }  

  

  

    /** 

     * 公告列表 页面跳转 

     *  

     * @return 

     */  

    @RequestMapping(params = "jeecgNote")  

    public ModelAndView jeecgNote(HttpServletRequest request) {  

        return new ModelAndView("jeecg/demo/test/jeecgNoteList");  

    }  

  

    /** 

     * easyui AJAX请求数据 

     *  

     * @param request 

     * @param response 

     * @param dataGrid 

     * @param user 

     */  

  

    @RequestMapping(params = "datagrid")  

    public void datagrid(JeecgNoteEntity jeecgNote,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {  

        CriteriaQuery cq = new CriteriaQuery(JeecgNoteEntity.class, dataGrid);  

        //查询条件组装器  

        org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, jeecgNote);  

        this.jeecgNoteService.getDataGridReturn(cq, true);  

        TagUtil.datagrid(response, dataGrid);  

    }  

  

    /** 

     * 删除公告 

     *  

     * @return 

     */  

    @RequestMapping(params = "del")  

    @ResponseBody  

    public AjaxJson del(JeecgNoteEntity jeecgNote, HttpServletRequest request) {  

        AjaxJson j = new AjaxJson();  

        jeecgNote = systemService.getEntity(JeecgNoteEntity.class, jeecgNote.getId());  

        message = "删除成功";  

        jeecgNoteService.delete(jeecgNote);  

        systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);  

          

        j.setMsg(message);  

        return j;  

    }  

  

  

    /** 

     * 添加公告 

     *  

     * @param ids 

     * @return 

     */  

    @RequestMapping(params = "save")  

    @ResponseBody  

    public AjaxJson save(JeecgNoteEntity jeecgNote, HttpServletRequest request) {  

        AjaxJson j = new AjaxJson();  

        if (StringUtil.isNotEmpty(jeecgNote.getId())) {  

            message = "更新成功";  

            jeecgNoteService.saveOrUpdate(jeecgNote);  

            systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);  

        } else {  

            message = "添加成功";  

            jeecgNoteService.save(jeecgNote);  

            systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);  

        }  

          

        return j;  

    }  

  

    /** 

     * 公告列表页面跳转 

     *  

     * @return 

     */  

    <span style="color:#ff0000;">@RequestMapping(params = "addorupdate")  

    public ModelAndView addorupdate(JeecgNoteEntity jeecgNote, HttpServletRequest req) {  

        if (StringUtil.isNotEmpty(jeecgNote.getId())) {  

            jeecgNote = jeecgNoteService.getEntity(JeecgNoteEntity.class, jeecgNote.getId());  

            req.setAttribute("jeecgNotePage", jeecgNote);  

        }  

        return new ModelAndView("jeecg/demo/test/jeecgNote");  

    }  

</span>}  

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

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

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

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

[html] view
plain copy

 





<!-- 默认的视图解析器 在上边的解析错误时使用 (默认使用html)- -->  

<bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="3">  

 <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />  

 <property name="contentType" value="text/html" />  

 <property name="prefix" <span style="color:#ff0000;">value="/webpage/" />  

/span>  <property name="suffix" value=".jsp" />  

</bean>  

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

 

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

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

[html] view
plain copy

 





<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

 





    /** 

     * 添加公告 

     *  

     * @param ids 

     * @return 

     */  

    <span style="color:#ff0000;">@RequestMapping(params = "save")  

    @ResponseBody  

</span> public AjaxJson save(JeecgNoteEntity jeecgNote, HttpServletRequest request) {  

        AjaxJson j = new AjaxJson();  

        if (StringUtil.isNotEmpty(jeecgNote.getId())) {  

            message = "更新成功";  

            jeecgNoteService.saveOrUpdate(jeecgNote);  

            systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);  

        } else {  

            message = "添加成功";  

            jeecgNoteService.save(jeecgNote);  

            systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);  

        }  

          

        return j;  

    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息