Jeecms开发学习笔记
3.1.3从Act到Mng
依然是参考guestbook,我们看guestbookAct中这样一段代码:
@RequestMapping(value = \ public void submit(Integer siteId, Integer ctgId, String title, String content, String email, String phone, String qq, String captcha, HttpServletRequest request,
HttpServletResponse
response,
ModelMap
model)
JSONException {
CmsSite site = CmsUtils.getSite(request); CmsUser member = CmsUtils.getUser(request); if (siteId == null) { siteId = site.getId();
}
JSONObject json = new JSONObject(); try { if (!imageCaptchaService.validateResponseForID(session .getSessionId(request, response), captcha)) {
json.put(\ json.put(\
ResponseUtils.renderJson(response, json.toString()); return;
}
第 6 页 共 18 页
throws
Jeecms开发学习笔记
}
} catch (CaptchaServiceException e) { }
String ip = RequestUtils.getIpAddr(request);
cmsGuestbookMng.save(member, siteId, ctgId, ip, title, content, email,
phone, qq);
json.put(\json.put(\
ResponseUtils.renderJson(response, json.toString()); log.warn(\return;
json.put(\json.put(\
ResponseUtils.renderJson(response, json.toString());
@Autowired
private CmsGuestbookCtgMng cmsGuestbookCtgMng; @Autowired
private CmsGuestbookMng cmsGuestbookMng; @Autowired
private SessionProvider session; @Autowired
private ImageCaptchaService imageCaptchaService;
第 7 页 共 18 页
Jeecms开发学习笔记
Json我们不多做介绍,在Jeecms框架下,想要处理带有验证码提交的数据时,我们可以复制之后稍作修改,方法是平凡的,重点看红色框的部分。
第一个红色框框中用到了cmsGuestbookMng的save方法,下面的 json.put(\json.put(\
是关于验证码的信息,在html中的ajax提交方法有如下的判断:
if(data.status==0) {
alert(\留言成功\
location.href=location.href; } else if(data.status==1) { alert(\验证码错误\
$(\ }
显然地,status==0,提交就成功了。
第二个红色框框中用到了@Autowired注解,作用是数据在走Mng接口时bytype自动注入,与@Resource注解的byname形成对照。
这就实现了从Act到Mng,注入后可以使用Mng的save方法。
3.2Mng和MngImpl
3.2.1什么是Mng和MngImpl?
也就是manager接口和实现类,是业务逻辑层的重要的类。在Jeecms中,guestbook是特殊的,他有前端guestbook_index.html存入,有后端guestbook文件夹下3个页面的查询。这就意味着有两个Act会走这个Mng接口,相对的,guestbook的业务逻辑也会比较复杂。
第 8 页 共 18 页
Jeecms开发学习笔记
3.2.2Mng
仍然是guestbook,看它的代码:
public interface CmsGuestbookMng {
public Pagination getPage(Integer siteId, Integer ctgId,Integer userId, Boolean
recommend,
第 9 页 共 18 页
Boolean checked, boolean desc, boolean cacheable, int pageNo, int pageSize);
@Transactional(readOnly = true)
public List
Boolean recommend, Boolean checked, boolean desc, boolean cacheable, int first, int max);
public CmsGuestbook findById(Integer id);
public CmsGuestbook save(CmsGuestbook bean, CmsGuestbookExt ext,
Integer ctgId, String ip);
public CmsGuestbook save(CmsUser member, Integer siteId, Integer ctgId,
String ip, String title, String content, String email, String phone, String qq);
Jeecms开发学习笔记
public CmsGuestbook update(CmsGuestbook bean, CmsGuestbookExt ext,
Integer ctgId);
public CmsGuestbook deleteById(Integer id);
public CmsGuestbook[] deleteByIds(Integer[] ids);
public CmsGuestbook[] checkByIds(Integer[] ids,CmsUser checkUser,Boolean
checkStatus); }
这里没什么好说的,就是接口而已,我们不多看重点是下面的实现类。
3.2.3从MngImpl到Dao
Mng红色框框内对应的实现代码如下:
public CmsGuestbook save(CmsGuestbook bean, CmsGuestbookExt ext,
Integer ctgId, String ip) {
bean.setCtg(cmsGuestbookCtgMng.findById(ctgId)); bean.setIp(ip);
bean.setCreateTime(new Timestamp(System.currentTimeMillis())); bean.init(); dao.save(bean);
cmsGuestbookExtMng.save(ext, bean); return bean;
第 10 页 共 18 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Jeecms开发学习笔记(2)在线全文阅读。
相关推荐: