今天就从单表哦模型开始学习吧!系统初始化以及系统登录在此就先不说了,在JEECG帮助文档中写的很详细了,我用的是Oracle数据库。
登录系统后:如下界面
![](https://img-blog.csdn.net/20140509140602828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3djZ3djamF2YQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
用的版本是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.添加操作:
操作页面
![](https://img-blog.csdn.net/20140509144230875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3djZ3djamF2YQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
那么怎么跳转到这个页面的呢?
那首先要看看点击录入按钮,做了什么事情
看一下List页面,录入按钮代码:
- <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类的代码如下:
- package jeecg.demo.controller.test;
- import java.util.List;
-
- 略..
-
-
-
-
-
-
-
-
- <span style="color:#ff0000;">@Controller
- @RequestMapping("/jeecgNoteController")
- </span>public class JeecgNoteController extends BaseController {
-
-
-
- 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;
- }
-
-
-
-
-
-
-
- @RequestMapping(params = "jeecgNote")
- public ModelAndView jeecgNote(HttpServletRequest request) {
- return new ModelAndView("jeecg/demo/test/jeecgNoteList");
- }
-
-
-
-
-
-
-
-
-
-
- @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);
- }
-
-
-
-
-
-
- @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;
- }
-
-
-
-
-
-
-
-
- @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;
- }
-
-
-
-
-
-
- <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
-
- <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跳转:
- <t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" <span style="color:#ff0000;">action="jeecgNoteController.do?save</span>">
如以上解析,那么会找到被注解为jeecgNoteController的类中的并且注解参数为save的方法
-
-
-
-
-
-
- <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;
- }