第十七部分:Web 层代码量比较大,涉及的地方也比较多,考虑到文章过于庞大,所以分两篇写。
我们还是先从主要的
action 开始吧。
在 com.game.products.web.actions 包中新建 ProductsAction ,这是一个 DispatchAction ,
代码如下:
package com.game.products.web.actions; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.acegisecurity.AccessDeniedException; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import com.game.commons.Pager; import com.game.commons.PagerService; import com.game.products.model.Products; import com.game.products.services.iface.ProductsService; import com.game.products.web.forms.ProductsForm; public class ProductsAction extends DispatchAction { private ProductsService productsService; private PagerService pagerService; /** */ /** * 显示所有信息 */ public ActionForward doGetProducts( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { String flag = req.getParameter( " flag " ); int totalRows = productsService.getRows(); String currentPage = req.getParameter( " currentPage " ); String pagerMethod = req.getParameter( " pagerMethod " ); Pager pager = pagerService.getPager(currentPage, pagerMethod, totalRows); List productsList = productsService.getProducts(pager.getPageSize(), pager.getStartRow()); req.setAttribute( " productsList " , productsList); req.setAttribute( " PAGER " , pager); req.setAttribute( " flag " , flag); req.setAttribute( " totalRows " , String.valueOf(totalRows)); return mapping.findForward( " all " ); } /** */ /** * 显示一条信息 */ public ActionForward doGetProduct( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { String flag = req.getParameter( " flag " ); String gameId = req.getParameter( " gameId " ); String fieldname = "" ; String value = "" ; if (flag.equals( " 2 " )) { fieldname = (String)req.getParameter( " fieldname " ); value = (String)req.getParameter( " value " ); req.setAttribute( " fieldname " , fieldname); req.setAttribute( " value " , value); } Products pd = productsService.getProduct(gameId); req.setAttribute( " pd " , pd); req.setAttribute( " flag " , flag); return mapping.findForward( " one " ); } /** */ /** * 添加信息页面 */ public ActionForward doAddProductPage( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { String flag = req.getParameter( " flag " ); req.setAttribute( " flag " , flag); String fieldname = "" ; String value = "" ; if (flag.equals( " 2 " )) { fieldname = (String)req.getParameter( " fieldname " ); value = (String)req.getParameter( " value " ); req.setAttribute( " fieldname " , fieldname); req.setAttribute( " value " , value); } String maxid = productsService.getMaxID(); req.setAttribute( " maxid " , maxid); return mapping.findForward( " add " ); } /** */ /** * 添加信息 */ public ActionForward doAddProduct( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { ProductsForm pf = (ProductsForm)form; String flag = pf.getFlag(); req.setAttribute( " flag " , flag); String fieldname = "" ; String value = "" ; if (flag.equals( " 2 " )) { fieldname = pf.getFieldname(); value = pf.getValue(); req.setAttribute( " fieldname " , fieldname); req.setAttribute( " value " , value); } Products pd = new Products(); pd.setGameCapacity(pf.getGameCapacity()); pd.setGameId(pf.getGameId()); pd.setGameMedia(pf.getGameMedia()); pd.setGameNameCn(pf.getGameNameCn()); pd.setGameNameEn(pf.getGameNameEn()); pd.setGameVersion(pf.getGameVersion()); pd.setGameCopyright(pf.getGameCopyright()); pd.setGameContent(pf.getGameContent()); if (pf.getGamePrice().equals( "" )) { pd.setGamePrice( null ); } else { pd.setGamePrice(pf.getGamePrice()); } int sign = 1 ; try { productsService.addProduct(pd); sign = 1 ; } catch (Exception e) { sign = 2 ; } if (sign == 1 ) { return mapping.findForward( " success " ); } else { return mapping.findForward( " failure " ); } } /** */ /** * 修改信息 */ public ActionForward doUpdateProduct( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { ProductsForm pf = (ProductsForm)form; String gameId = pf.getGameId(); String flag = pf.getFlag(); req.setAttribute( " flag " , flag); String fieldname = "" ; String value = "" ; if (flag.equals( " 2 " )) { fieldname = pf.getFieldname(); value = pf.getValue(); req.setAttribute( " fieldname " , fieldname); req.setAttribute( " value " , value); } Products pd = productsService.getProduct(gameId); pd.setGameCapacity(pf.getGameCapacity()); pd.setGameId(pf.getGameId()); pd.setGameMedia(pf.getGameMedia()); pd.setGameNameCn(pf.getGameNameCn()); pd.setGameNameEn(pf.getGameNameEn()); pd.setGameVersion(pf.getGameVersion()); pd.setGameCopyright(pf.getGameCopyright()); pd.setGameContent(pf.getGameContent()); if (pf.getGamePrice().equals( "" )) { pd.setGamePrice( null ); } else { pd.setGamePrice(pf.getGamePrice()); } int sign = 1 ; try { productsService.updateProductd(pd); sign = 1 ; } catch (Exception e) { sign = 2 ; } if (sign == 1 ) { return mapping.findForward( " success " ); } else { return mapping.findForward( " failure " ); } } /** */ /** * 删除信息 */ public ActionForward doDeleteProduct( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { String flag = req.getParameter( " flag " ); req.setAttribute( " flag " , flag); String fieldname = "" ; String value = "" ; if (flag.equals( " 2 " )) { fieldname = (String)req.getParameter( " fieldname " ); value = (String)req.getParameter( " value " ); req.setAttribute( " fieldname " , fieldname); req.setAttribute( " value " , value); } String gameId = req.getParameter( " gameId " ); Products pd = productsService.getProduct(gameId); int sign = 1 ; try { productsService.deleteProduct(pd); sign = 1 ; } catch (Exception e) { sign = 2 ; } if (sign == 1 ) { return mapping.findForward( " success " ); } else { return mapping.findForward( " failure " ); } } /** */ /** * 返回信息 */ public ActionForward doReturnProduct( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { String flag = req.getParameter( " flag " ); req.setAttribute( " flag " , flag); String fieldname = "" ; String value = "" ; if (flag.equals( " 1 " )) { int totalRows = productsService.getRows(); String currentPage = req.getParameter( " currentPage " ); String pagerMethod = req.getParameter( " pagerMethod " ); Pager pager = pagerService.getPager(currentPage, pagerMethod, totalRows); List productsList = productsService.getProducts(pager.getPageSize(), pager.getStartRow()); req.setAttribute( " productsList " , productsList); req.setAttribute( " PAGER " , pager); req.setAttribute( " flag " , flag); req.setAttribute( " totalRows " , String.valueOf(totalRows)); } else if (flag.equals( " 2 " )) { fieldname = (String)req.getParameter( " fieldname " ); value = (String)req.getParameter( " value " ); int totalRows = productsService.getRows(fieldname,value); String currentPage = req.getParameter( " currentPage " ); String pagerMethod = req.getParameter( " pagerMethod " ); Pager pager = pagerService.getPager(currentPage, pagerMethod, totalRows); req.setAttribute( " fieldname " , fieldname); req.setAttribute( " value " , value); List productsList = productsService.queryProducts(fieldname, value,pager.getPageSize(), pager.getStartRow()); req.setAttribute( " productsList " , productsList); req.setAttribute( " PAGER " , pager); req.setAttribute( " totalRows " , String.valueOf(totalRows)); } return mapping.findForward( " all " ); } /** */ /** * 查询信息 */ public ActionForward doQueryProduct( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { String flag = req.getParameter( " flag " ); req.setAttribute( " flag " , flag); String fieldname = "" ; String value = "" ; fieldname = (String)req.getParameter( " fieldname " ); value = (String)req.getParameter( " value " ); int totalRows = productsService.getRows(fieldname,value); String currentPage = req.getParameter( " currentPage " ); String pagerMethod = req.getParameter( " pagerMethod " ); Pager pager = pagerService.getPager(currentPage, pagerMethod, totalRows); req.setAttribute( " fieldname " , fieldname); req.setAttribute( " value " , value); List productsList = productsService.queryProducts(fieldname, value,pager.getPageSize(), pager.getStartRow()); req.setAttribute( " productsList " , productsList); req.setAttribute( " PAGER " , pager); req.setAttribute( " totalRows " , String.valueOf(totalRows)); return mapping.findForward( " all " ); } public ProductsService getProductsService() { return productsService; } public void setProductsService(ProductsService productsService) { this .productsService = productsService; } public PagerService getPagerService() { return pagerService; } public void setPagerService(PagerService pagerService) { this .pagerService = pagerService; } }
第十八部分:在 com.game.products.web.forms 包中新建 ProductsForm ,他继承了 ValidatorForm 。代码如下:
package com.game.products.web.forms; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionMapping; import org.apache.struts.validator.ValidatorForm; public class ProductsForm extends ValidatorForm { // Fields private String gameId; // 编号 private String gameNameCn; // 中文名称 private String gameNameEn; // 英文名称 private String gameCapacity; // 碟数 private String gameVersion; // 版本 private String gameMedia; // 介质 private String gameCopyright; // 版权 private String gamePrice; // 价格 private String gameContent; // 攻略 private String flag; private String fieldname; private String value; // Constructors public ProductsForm() { gameId = null ; gameNameCn = null ; gameNameEn = null ; gameCapacity = null ; gameVersion = null ; gameMedia = null ; gameCopyright = null ; gamePrice = null ; gameContent = null ; flag = null ; fieldname = null ; value = null ; } // reset public void reset(ActionMapping mapping, HttpServletRequest request) { gameId = null ; gameNameCn = null ; gameNameEn = null ; gameCapacity = null ; gameVersion = null ; gameMedia = null ; gameCopyright = null ; gamePrice = null ; gameContent = null ; flag = null ; fieldname = null ; value = null ; } // Property accessors public String getGameCapacity() { return gameCapacity; } public void setGameCapacity(String gameCapacity) { this .gameCapacity = gameCapacity; } public String getGameId() { return gameId; } public void setGameId(String gameId) { this .gameId = gameId; } public String getGameNameCn() { return gameNameCn; } public void setGameNameCn(String gameNameCn) { this .gameNameCn = gameNameCn; } public String getGameNameEn() { return gameNameEn; } public void setGameNameEn(String gameNameEn) { this .gameNameEn = gameNameEn; } public String getGameVersion() { return gameVersion; } public void setGameVersion(String gameVersion) { this .gameVersion = gameVersion; } public String getGameMedia() { return gameMedia; } public void setGameMedia(String gameMedia) { this .gameMedia = gameMedia; } public String getFieldname() { return fieldname; } public void setFieldname(String fieldname) { this .fieldname = fieldname; } public String getFlag() { return flag; } public void setFlag(String flag) { this .flag = flag; } public String getValue() { return value; } public void setValue(String value) { this .value = value; } public String getGameCopyright() { return gameCopyright; } public void setGameCopyright(String gameCopyright) { this .gameCopyright = gameCopyright; } public String getGameContent() { return gameContent; } public void setGameContent(String gameContent) { this .gameContent = gameContent; } public String getGamePrice() { return gamePrice; } public void setGamePrice(String gamePrice) { this .gamePrice = gamePrice; } }