一 驗證不能爲空的操做:css
在form中添加代碼@NotEmpty(field="商品類型", message="{errors.required}")java
在controller中對應不能爲空的位置添加web
if(results.hasErrors())sql
return "manager/commodityType/addCommodityType";數據庫
3.不能爲空的格式:<td style="background-color: #f9f9f9;">商品名稱</td>
session
<td><form:input path="commodityTypeName" cssClass="form-control" cssErrorClass="form-control error" value="${commodityTypeForm.commodityTypeName}"/></td>app
二 添加商品類型模塊jsp
點擊商品類型管理的按鈕進入一個列表界面,顯示數據庫中已經存在的商品類型列表,本模塊的功能有編輯,刪除,追加和取消。ui
點擊編輯按鈕進入對商品類型的編輯,輸入內容爲空或添加商品類型與已有類型相同時提示錯誤信息。spa
點擊追加按鈕進入追加頁面添加時,一樣,輸入內容爲空或添加商品類型與已有類型相同時提示錯誤信息。
後臺創建addCommodityType.jsp
commodityTypeList.jsp
editCommodityType.jsp這三個頁面,添加ID,商品名稱和備註:commodity_type_id,commodity_type_name,commodity_type_note
在CommodityTypeForm中的重要代碼:
爲須要進行vailudation的屬性添加相應的標籤好比這裏的Name須要設置爲不能爲空或者不能與數據庫中已有的數據重複:
public class CommodityTypeForm {
private String commodityTypeId;
//驗證不能爲空
@NotEmpty(field="商品類型", message="{errors.required}")
private String commodityTypeName;
private String commodityTypeNote;
private String updateTime;
private String updateUser;
}
3.在CommodityTypeSqlMap中的重要代碼:數據庫中所要進行的一些操做,如查詢,插入,更新數據的語句
<sqlMap namespace="Commodity_type"> <select id="selectCommodityTypeList" parameterClass="cn.agriculture.web.form.CommodityTypeForm" resultClass="cn.agriculture.web.form.CommodityTypeForm"> SELECT commodity_type.commodity_type_id as commodityTypeId, commodity_type.commodity_type_name as commodityTypeName, commodity_type.commodity_type_note as commodityTypeNote FROM commodity_type </select> <select id="selectCommodityType" parameterClass="cn.agriculture.web.form.CommodityTypeForm" resultClass="cn.agriculture.web.form.CommodityTypeForm"> SELECT commodity_type_id as commodityTypeId, commodity_type_name as commodityTypeName, commodity_type_note as commodityTypeNote FROM commodity_type WHERE commodity_type_id = #commodityTypeId# </select> <select id="getSeq" resultClass="java.lang.Integer"> SELECT _nextval('commodityTypeId') </select> <insert id="addCommodityType" parameterClass="cn.agriculture.web.form.CommodityTypeForm"> INSERT INTO commodity_type(commodity_type_id, commodity_type_name,commodity_type_note) VALUES(#commodityTypeId#, #commodityTypeName#,#commodityTypeNote#) </insert> <update id="editCommodityType" parameterClass="cn.agriculture.web.form.CommodityTypeForm"> UPDATE commodity_type SET commodity_type_name = #commodityTypeName#, commodity_type_note = #commodityTypeNote# WHERE commodity_type_id = #commodityTypeId# </update> <delete id="delCommodityType" parameterClass="cn.agriculture.web.form.CommodityTypeForm"> DELETE FROM commodity_type WHERE commodity_type_id = #commodityTypeId# </delete> </sqlMap>
4.在CommodityTypeService中的重要代碼:調用存放數據庫中數據的一些方法
@Service public class CommodityTypeService { @Autowired QueryDAO queryDao; @Autowired UpdateDAO updateDao; public List<CommodityTypeForm> searchCommodityTypeList() { List<CommodityTypeForm> result = queryDao.executeForObjectList("Commodity_type.selectCommodityTypeList", null); return result; } public CommodityTypeForm searchCommodityType(CommodityTypeForm frm) { CommodityTypeForm result = queryDao.executeForObject("Commodity_type.selectCommodityType", frm, CommodityTypeForm.class); return result; } public boolean addCommodityType(CommodityTypeForm frm) { Integer sequee = queryDao.executeForObject("Commodity_type.getSeq", null, Integer.class); String commodityTypeId = frm.getUpdateTime().substring(0, 4) + String.format("%011d", sequee); frm.setCommodityTypeId(commodityTypeId); int result = updateDao.execute("Commodity_type.addCommodityType", frm); if (result == 1) { return true; } return false; } public CommodityTypeForm getEditCommodityType(CommodityTypeForm frm) { return queryDao.executeForObject("Commodity_type.selectEditCommodityType", frm,CommodityTypeForm.class); } public boolean editCommodityType(CommodityTypeForm frm) { int result = updateDao.execute("Commodity_type.editCommodityType", frm); if (result == 1) { return true; } return false; } public boolean delCommodityType(CommodityTypeForm frm) { int result = updateDao.execute("Commodity_type.delCommodityType", frm); if (result == 1) { return true; } return false; } }
5.在CommodityTypeControllor中的重要代碼:主要實現各頁面的跳轉和一些功能
@Slf4j @Controller("CommodityTypeController") @RequestMapping("/") public class CommodityTypeController { @Autowired CommodityTypeService commodityTypeService; @Autowired ItemListComponent itemListComponent; @Autowired private Environment env; @RequestMapping(value = "initCommodityType", method = RequestMethod.GET) public String initCommodityType(Model model) { log.info("商品類型初始化"); model.addAttribute("list", commodityTypeService.searchCommodityTypeList()); return "manager/commodityType/commodityTypeList"; } @RequestMapping(value = "initAddCommodityType", method = RequestMethod.GET) public String initAddCommodityType(Model model) { log.info("追加商品類型初始化"); CommodityTypeForm commodityTypeForm = new CommodityTypeForm(); model.addAttribute("commodityTypeForm", commodityTypeForm); return "manager/commodityType/addCommodityType"; } @RequestMapping(value = "addCommodityType", method = RequestMethod.POST) public String executeAddCommodityType( Model model, HttpSession session, @Valid @ModelAttribute("commodityTypeForm") CommodityTypeForm commodityTypeForm, BindingResult results) throws SQLException, IOException { //判斷文本框內容不能爲空 if(results.hasErrors()) return "manager/commodityType/addCommodityType"; log.info("添加商品類型信息"); UVO uvo = (UVO) session.getAttribute("UVO"); commodityTypeForm.setUpdateUser(uvo.getUserName()); Date date = new Date(); SimpleDateFormat dateformat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); commodityTypeForm.setUpdateTime(dateformat.format(date)); boolean result = commodityTypeService .addCommodityType(commodityTypeForm); if (!result) { throw new SQLException("商品類型信息添加失敗!"); } model.addAttribute("list", commodityTypeService.searchCommodityTypeList()); return "manager/commodityType/commodityTypeList"; } @RequestMapping(value = "initEditCommodityType", method = RequestMethod.GET) public String initEditCommodityType(Model model, CommodityTypeForm commodityTypeForm) { log.info("修改商品類型信息初始化"); CommodityTypeForm result = commodityTypeService .searchCommodityType(commodityTypeForm); model.addAttribute("commodityTypeForm", result); return "manager/commodityType/editCommodityType"; } @RequestMapping(value = "editCommodityType", method = RequestMethod.POST) public String executeEditCommodityType( Model model, HttpSession session, @Valid @ModelAttribute("commodityTypeForm") CommodityTypeForm commodityTypeForm, BindingResult results) throws SQLException, IOException { //判斷文本框內容不能爲空 if(results.hasErrors()) return "manager/commodityType/editCommodityType"; log.info("修改商品類型信息"); //uvo語句是判斷登錄時間,登錄超時將從新登錄 // UVO uvo = (UVO)session.getAttribute("UVO"); // commodityTypeForm.setUpdateUser(uvo.getUserName()); Date date = new Date(); SimpleDateFormat dateformat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); commodityTypeForm.setUpdateTime(dateformat.format(date)); boolean result = commodityTypeService .editCommodityType(commodityTypeForm); if (!result) { throw new SQLException("商品類型信息更新失敗!"); } model.addAttribute("list", commodityTypeService.searchCommodityTypeList()); return "manager/commodityType/commodityTypeList"; } @RequestMapping(value = "delCommodityType", method = RequestMethod.GET) public String executeDelCommodityType(Model model, CommodityTypeForm commodityTypeForm) throws SQLException { log.info("刪除商品類型信息"); boolean result = commodityTypeService .delCommodityType(commodityTypeForm); if (!result) { throw new SQLException("商品類型信息刪除失敗!"); } model.addAttribute("list", commodityTypeService.searchCommodityTypeList()); return "manager/commodityType/commodityTypeList"; } }