ava實現版本:首先選擇產品分類,然后選擇產品類型
jsp:
1.queryProduct.jsp
CODE:
......
? <script type="text/javascript" src="../js/taconite-client.js"></script>
? <script type="text/javascript" src="../js/taconite-parser.js"></script>
? <script language="javascript">
? ? //選擇產品分類
? ? function selectCatalog(vproductCatalog) {
? ? ? ? if (vproductCatalog.value == "") {
? ? ? ? ? hint("請先選擇產品分類");
? ? ? ? } else {
? ? ? ? ? hint("加載中...");
? ? ? ? ? var ajaxRequest = new AjaxRequest("<html:rewrite page="/product/queryProductsAction.do"/>");
? ? ? ? ? ajaxRequest.setQueryString("catalogId=" + vproductCatalog.value);
? ? ? ? ? ajaxRequest.sendRequest();
? ? ? ? }
? ? }
? ? function hint(msg) {
? ? ? ? var e = document.getElementById("PTypeSelectList");
? ? ? ? while (e.childNodes.length > 0) {
? ? ? ? ? e.removeChild(e.childNodes[0]);
? ? ? ? }
? ? ? ? var option = document.createElement("option");
? ? ? ? var text = document.createTextNode(msg);
? ? ? ? option.appendChild(text);
? ? ? ? e.appendChild(option);
? ? }
? </script>
......
<table width="600" border="1" cellpadding="0" cellspacing="0" bordercolor="#E7E7E7">
? ? ? ? ? <tr>
? ? ? ? ? ? <td bgcolor="#F6F6F6" class="t_1"> 產品分類目錄
? ? ? ? ? ? <html:select property="productCatalog" onchange="selectCatalog(this)">
? ? ? ? ? ? <html:option value ="">請選擇產品分類</html:option>
? ? ? ? ? ? <html:options collection ="productCatalogs" property="value" labelProperty="label"/>
? ? ? ? ? ? </html:select>
? ? ? ? ? ? </td>
? ? ? ? ? </tr>
? ? ? ? ? <tr>
? ? ? ? ? ? <td align="left" class="t_1"> 產品類型目錄
? ? ? ? ? ? <html:select property="productType" styleId="PTypeSelectList">
? ? ? ? ? ? <html:option value ="">請先選擇產品分類</html:option>
? ? ? ? ? ? <html:options collection ="productTypes" property="value" labelProperty="label"/>
? ? ? ? ? ? </html:select>
? ? ? ? ? ? <html:submit property="query" value="查 詢"/></td>
? ? ? ? ? </tr>
? ? ? ? ? </table>
? ? ? ? ? </html:form>
2.showProductType.jsp
CODE:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="[url]http://java.sun.com/jstl/core[/url]" prefix="c" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="[url]http://taconite.sf.net/tags[/url]" prefix="tac" %>
<tac:taconiteRoot>
<tac:replaceChildren contextNodeID="PTypeSelectList" parseOnServer="false">
? ? ? <option value="" >請選擇產品類型</option>
? <nested:iterate id="view" name="productTypes" >
? ? ? <option value="<nested:write name="view" property="value"
/>" ><nested:write name="view" property="label"
/></option>
? </nested:iterate>
</tac:replaceChildren>
</tac:taconiteRoot>
action:
CODE:
public class QueryProductsAction extends Action {
? public ActionForward execute(ActionMapping mapping,ActionForm
form,HttpServletRequest request,HttpServletResponse response) {
? ? ......
? ? UtilBusiness utilBusiness = new UtilBusinessImpl();
? ? request.setAttribute("productCatalogs",utilBusiness.getAllProductCatalogs());
? ? int catalogId = 0;
? ? if(request.getParameter("catalogId") != null && request.getParameter("catalogId").length != 0){
? ? ? ? catalogId = Integer.parseInt(request.getParameter("catalogId"));
? ? }
? ? request.setAttribute("productTypes",utilBusiness.getAllPTypes(catalogId));
? ? return mapping.findForward("showPType");
? ? ......
? }
}
UtilDaoImpl.java:
CODE:
public List getAllPTypes(int catalogId) throws DaoException{
? ? String getAllProductTypes = "select id,name from productType where catalogId = ?"; ? ? ?
? ? Connection con = null;
? ? PreparedStatement ps = null;
? ? ResultSet rs = null;
? ? try {
? ? ? ? List list = new ArrayList();
? ? ? ? PType pType;
? ? ? ? con = super.getConnection();
? ? ? ? ps = con.prepareStatement(getAllProductTypes);
? ? ? ? ps.setInt(1,catalogId);
? ? ? ? rs = ps.executeQuery();
? ? ? ? while (rs.next()) {
? ? ? ? ? pType = new PType();
? ? ? ? ? pType.setLabel(rs.getString("name"));
? ? ? ? ? pType.setValue(String.valueOf(rs.getInt("id"));
? ? ? ? ? list.add(pType);
? ? ? ? }
? ? ? ? return list;
? ? } catch (SQLException sqle) {
? ? ? ? sqle.printStackTrace();
? ? } catch (NullPointerException npe) {
? ? ? ? npe.printStackTrace();
? ? } finally {
? ? ? ? ? if (null != rs) {
? ? ? ? ? ? rs.close();
? ? ? ? ? }
? ? ? ? ? if (null != ps) {
? ? ? ? ? ? ps.close();
? ? ? ? ? }
? ? ? ? ? if (null != con) {
? ? ? ? ? ? con.close();
? ? ? ? ? } ?
}