导入项目
项目是由eclipse来编写的,我使用的开发环境是Idea,那么就需要将eclipse项目导入进去Idea中。要想项目能够启动起来。是这样干的:
导入eclipse的项目
添加对应的Web Model,添加完毕之后,默认会提示要我们创建对应的Facts的。
接着修改Facets中标出的值,因为我们手动创建的话,指向的是Idea中的web目录的。可是项目是用eclipse编写的,因此要改成是WebRoot对应的文件!
接着配置Tomcat,就基本可以让eclipse中的项目在Idea环境下运行了。
- 当然了、数据库是需要自己配置与eclipse中的环境一模一样的。
主菜单跳转JSP页面
在主菜单页面上有很多的URL跳转到不同的JSP页面。
- 我们的JSP可能是放在WEB-INF下的,是无法直接获取的。因此需要Controller进行转发
- 如果为每个超链接都写一个Controller方法的话,那么会有点麻烦!
这些超链接是不同的模块下的。但是我们可以使用BaseAction对他们进行统一管理起来!
- 这里使用到了@PathVariable这么一个注解。变量从@RequestMapping中的参数来拿。
- 所有的主菜单超链接都通过我们的BaseAction来进行处理!
//方法参数folder通过@PathVariable指定其值可以从@RequestMapping的{folder}获取,同理file也一样 @RequestMapping("/goURL/{folder}/{file}") public String goURL(@PathVariable String folder,@PathVariable String file) { return "forward:/WEB-INF/"+folder+"/"+file+".jsp"; }
我们常常在跳转页面之前都要查询数据库的数据的,那如果是这样设计的话,我们可以将常用数据放在application域对象中,或者使用ajax来进行获取数据!
分页对象设计
之前我们做的分页对象就仅仅把我们分页所用到的基本属性封装起来。如果页面上有查询条件的话,我们另外创建了一个查询对象。
当时候创建出来的查询对象的属性是根据页面上的条件来编写的。这样做得不够好,没有通用性!
这次看见这个项目的Page设计就非常通用了,虽然把查询条件都放在了Page对象中,但我感觉比之前那个好!
- 由于它使用了easyUI,该组件会自动计算出总页数,所以在Page对象设计的时候就没有对应的总页数属性了。如果我们不是用easyUI的话,我们补上即可!
public class Page<T> implements Serializable { private static final long serialVersionUID = 337297181251071639L; private Integer page;//当前页 private Integer rows;//页大小 private Integer totalRecord;// 总记录 数 private List<T> list;//页面数据列表 private String keyWord;//查询关键字 private T paramEntity;//多条件查询 private Integer start;//需要这里处理 //因为它用的是easyUI,所以没有设置总页数的属性,使用Map集合来替代了。 private Map<String, Object> pageMap = new HashMap<String, Object>() ; public Map<String, Object> getPageMap() { return pageMap; } /*public void setPageMap(Map<String, Object> pageMap) { this.pageMap = pageMap; }*/ public T getParamEntity() { return paramEntity; } public void setParamEntity(T paramEntity) { this.paramEntity = paramEntity; } public Integer getPage() { return page; } public void setPage(Integer page) { this.page = page; } public Integer getRows() { return rows; } public void setRows(Integer rows) { this.rows = rows; } /*public Integer getTotalRecord() { return totalRecord; }*/ public void setTotalRecord(Integer totalRecord) { pageMap.put("total", totalRecord); this.totalRecord = totalRecord; } /* public List<T> getList() { return list; }*/ public void setList(List<T> list) { pageMap.put("rows", list); this.list = list; } public String getKeyWord() { return keyWord; } public void setKeyWord(String keyWord) { this.keyWord = keyWord; } public Integer getStart() { this.start = (page-1)*rows; return start; } public void setStart(Integer start) { this.start = start; } @Override public String toString() { return "Page [page=" + page + ", rows=" + rows + ", totalRecord=" + totalRecord + ", list=" + list + ", keyWord=" + keyWord + ", paramEntity=" + paramEntity + ", start=" + start + "]"; } }
- 使用了泛型对象的话,我们就可以完成多条件查询了!这个泛型对象就相当于我们的查询对象!