⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shopaction.java

📁 基于struts开发的网上书店系统。希望对大家有帮助。JSP JavaBean Struts
💻 JAVA
字号:
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package book;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/** 
 * MyEclipse Struts
 * Creation date: 09-19-2007
 * 
 * XDoclet definition:
 * @struts.action path="/shopAction" name="shoppingForm" input="/bookshopping.jsp" scope="request" validate="true"
 * @struts.action-forward name="bookshopping" path="/bookshopping.jsp"
 * @struts.action-forward name="bookinfo" path="/bookinfo.jsp"
 */
public class ShopAction extends Action {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
	    //这是处理购物车的Action类

	    SeeDataBean obj=new SeeDataBean();
	    
	    
	    //引入ActionForm

	    ShoppingForm shopform= ( ShoppingForm) form;
	  
	     
	     //为了节省内存开销,购物车保留在一个会话中
	     //只保留两个数据,一个是主键,另一个是数量
	     //首先一定要得到session对象
	     //购物车本身就是一个哈西表,这里为 tb,会话的名字为shopping

	     //数先需要根据请求的情况决定会话的内容


	       javax.servlet.http.HttpSession session=request.getSession();

	       java.util.Hashtable tb=new java.util.Hashtable();

	      if (session.getAttribute("shopping") != null)
	           tb=(java.util.Hashtable)session.getAttribute("shopping");

	       //这个是加入购物车的动作
	      if (request.getParameter("Pa") != null) {

	            //如果是ID值的请求,则在会话中增加一个内容
	            //条件,原来有的数量将加一,原来没有则加入新的内容

	             String myID = request.getParameter("Pa");

	             if (tb.containsKey(myID))
	               {
	               int v= Integer.parseInt((tb.get(myID)).toString());                      // tb.put(myID.trim(),);
	                 v++;
	                 tb.put(myID.trim(),String.valueOf(v));
	               }
	               else
	                 tb.put(myID.trim(),"1");

	              session.setAttribute("shopping",tb);
	         }

	        //这个是修改请求的动作
	       if (request.getParameter("AddValue") != null) {
	         //如果是修改值请求,在名称域中取得名称子串
	           String nameField =shopform.getBook();
	            if (nameField != null && nameField.trim().length() > 0)

	              //从请求中取得session名对应的值设到会话变量中

	             tb.put(nameField.trim(),shopform.getNumber());
	             session.setAttribute("shopping",tb);

	          //下面是删除请求的动作
	            } else if (request.getParameter("DeleteValue") != null) {
	         //如果是删除值请求,在会话对象中删除名称对应的会话变量名和值
	         if (tb.containsKey(shopform.getBook()))
	                  tb.remove(shopform.getBook());
	              session.setAttribute("shopping",tb);
	       }

	    //下面要构造购物车的表和下拉列表的内容

	    //把有关数据库的查询加入到一个哈西表里面去

	    java.util.Hashtable booktb=new java.util.Hashtable();


	    //这是提供给下拉列表的内容
	    java.util.Hashtable selecttb=new java.util.Hashtable();

	    //通过查询决定本地的表有些什么内容
	    //遍历,利用一下枚举
	     java.util.Enumeration sessionNames1 =tb.keys();
	      //定义主键
	     String name;
	    
	    //构造查询条件
	     String mywhere="where id < 0 ";
	  
	    
	     while (sessionNames1.hasMoreElements()) {
	        name = (String)sessionNames1.nextElement();
	        mywhere+=" or id="+name+" ";
	     }
	     //由查询条件决定数据
	     String[][] bookarray=obj.selectrow("select * from booktable "+mywhere);
	          
	 
	    //加入哈西表,每行数据都是一个数组

	       for (int k=0;k<bookarray.length;k++)
	        {
	          String[] bk=new String[4];
	          bk[0]=bookarray[k][1];
	          bk[1]=bookarray[k][2];
	          bk[2]=bookarray[k][3];
	          bk[3]=bookarray[k][4];

	          booktb.put(bookarray[k][0],bk);
	       }


	     //下面构造传出的数组
	     //遍历,利用一下枚举
	     java.util.Enumeration sessionNames =tb.keys();
	    

	     //购物车显示数组
	     String[][] xs=new String[tb.size()][6];

	     int i=0;
	     while (sessionNames.hasMoreElements()) {
	        name = (String)sessionNames.nextElement();
	        String[] array=new String[4];
	        array=(String[])booktb.get(name);
	        xs[i][0]=array[0];
	        xs[i][1]=array[1];
	        xs[i][2]=array[2];
	        xs[i][3]=array[3];
	        xs[i][4]=tb.get(name).toString();
	    
	       //计算合计数
	       double titl=Integer.parseInt(xs[i][4])*
	                Double.parseDouble(xs[i][3]);
	        
	       //格式化输出,防止小数点后面出现很多的九

	       xs[i][5]= java.text.NumberFormat.getInstance().format(titl);

	        i++;
	        //同时也把下拉列表的内容填上
	        String[] selectsee=(String[])booktb.get(name);
	        selecttb.put(name, selectsee[1].toString());
	    }

	     //把两个表都加入进请求列表
	     request.setAttribute("shoppinglog", xs);
	     request.setAttribute("selecttable", selecttb);

	     //转向bookshopping
	     return (mapping.findForward("bookshopping"));
	  }
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -