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

刚刚接触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页面,录入按钮代码:

  <t:dgToolBar title="录入" icon="icon-add" url="jeecgNoteController.do?addorupdate" 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;

略..
/**   
 * @Title: Controller
 * @Description: 公告
 * @author zhangdaihao
 * @date 2013-03-12 14:06:34
 * @version V1.0   
 *
 */
@Controller
@RequestMapping("/jeecgNoteController")
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
	 */
	@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");
	}
}

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

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

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

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

 <!-- 默认的视图解析器 在上边的解析错误时使用 (默认使用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" value="/webpage/" />
  <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" action="jeecgNoteController.do?save">

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

	/**
	 * 添加公告
	 * 
	 * @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;
	}





 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值