新工做上班第九天了。寫寫本身的心得。
css
新工做第三天,分配了一個項目,一個開發組長,三個開發人員,一個月完成。開發人員:1. 蘇:工做經驗比我還多(10年),2. 曾:工做一年多。3.我。
html
第四天:討論開發框架,論壇了蘇從網站上自動生成代碼的那一套。我的以爲很差用。開發組長周看起來像打醬油的,開發框架本身都沒有,還要咱們本身拿主意。
前端
第五天:組長周給了一套他本身用過的開發代碼,在resin上能夠啓動,可是隻有源代碼,沒有用Eclipse搭起來的項目。蘇和週一致說用任何編輯器寫好代碼之後,放到resin裏面就跑。我以爲難以想象。(進入工做發現有太多難以想象了!)怎麼可能不編譯調試。我用Eclipse新建了一個項目,導入了周給的代碼。項目能啓動,就是首頁地址有的請求路徑不對。他的代碼全是放到root下面的,而我新建的項目是在個人項目名稱下面。
第二週,
週一:這個不太懂的周說:「你這仍是適應不了這個開發環境,這樣你今天仍是不能作事!」我靠!通過研究,在tomcat裏面改個配置便可
<Context path="" docBase="E:/code/apache-tomcat-6.0.39kaowu/webapps/eapp" debug="0" reloadable="true"/>
docBase路徑不能有空格。
開始作登錄,沿用Apache shiro 的登錄 還比較順利
週二,作表單錄入,直接controller調用dao保存方法比較快。
(題外:他們也是用的springmvc hibernate 可是能夠直接請求XX.jsp,跟我以前作過的項目徹底不同,爲此研究了好久,發現他們的文件是放在webroot下面 不在web-inf目錄下面。原來放在webroot下面是通過過濾器,可是不通過mvc 的控制器的。)
另外發現:在webroot下面時相對路徑很差使,是否是要在web-inf下面纔有用呢,未得驗證。
週三,作列表。我原來用的頁面前臺都是easyui。此次的項目要兼容手機端,html5。因而美工妹子曾用了bootcss.(比我有見識,很是流行的前端有easyui,bootcss,ext js).
用bootstrap 表格的時候開始是客戶端分頁,在妹子的幫助下,找到了文檔 http://bootstrap-table.wenzhixin.net.cn/examples/
找到了傳到後臺的每頁條數Limit,和記錄開始數Offset。
開始封裝。分享一下個人代碼。從bootstrap table 獲取頁碼和頁數,並交給後臺處理。html5
$('#table').bootstrapTable({ url: '<%=path%>/FeedList.cqzk', striped: true, pagination: true, pageList: [3,5,20], pageSize:3, pageNumber:1, sidePagination:'server',//設置爲服務器端分頁 columns: [{ field: 'title', title: '標題' }, { field: 'creatTime', title: '時間' } ] }); @RequestMapping(value = "/FeedList.cqzk") @ResponseBody public String url_ad1(HttpServletRequest request,BootPage page) throws ServletException,IOException,RuntimeException{ @SuppressWarnings("unchecked") // List<Feedback> list = feedBackDao.find("from Feedback"); BootPage pager = feedBackDao.getByPage("from Feedback",page,null); System.out.println((JSONArray.fromObject(pager)).getString(0).toString()); return (JSONArray.fromObject(pager)).getString(0).toString(); // 不寫.getString(0) 就多一箇中括號,返回的就是數組,寫了就是返回第一個對象。 } public BootPage getByPage(String hql,BootPage pager,Map<String, Object> condition){ if (pager == null) { throw new IllegalArgumentException("分頁 不能爲空!"); } Query q = sessionFactory.getCurrentSession().createQuery(hql); q.setFirstResult(pager.getOffset()); q.setMaxResults(pager.getLimit()); if (condition != null) { q.setProperties(condition); } pager.setRows(q.list()); pager.setTotal(this.countAll(hql, condition)); return pager; } protected Long countAll(String hql, Map<String, Object> condition) { if (hql == null) { return 0l; } String tmpHql = hql.toLowerCase(); String regex = hql.substring(0, tmpHql.indexOf("from")); hql = hql.replaceFirst(regex, "select count(*) "); Query q = sessionFactory.getCurrentSession().createQuery(hql); if (condition != null) { q.setProperties(condition); } return (Long) q.uniqueResult(); } public final class BootPage<T> { protected Long total; protected List<T> rows; protected int limit=0; protected int offset = 0; protected String order ="asc" ;