select_productType.jsp:
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/page/share/taglib.jsp" %>
<html>
<head>
<title> 类别选择 </title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="/css/vip.css" type="text/css">
<SCRIPT language=JavaScript src="/js/FoshanRen.js"></SCRIPT>
<SCRIPT language=JavaScript src="/js/xmlhttp.js"></SCRIPT>
<SCRIPT language=JavaScript>
function getDicName(typeid,name){
var form = document.forms[0];
form.dicId.value = typeid;
form.dicName.value = name;
}
function checkIt(){
var form = document.forms[0];
var parform = opener.document.forms[0];
if(parform){
parform.typeid.value = form.dicId.value;
parform.v_type_name.value = form.dicName.value;
}
}
</SCRIPT>
<style>
<!--
.inputText{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #666666;
border: 1px solid #999999;
}
body {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 12px;
color: #666666;
}
-->
</style>
</head>
<body>
<c:set var="menuout" value=""/>
<c:forEach items="${gps}" var="gptype">
<c:set var="menuout" value="${menuout}>><a href='/baba1.1/control/product/manage.do?method=selectUI&typeid=${gptype.typeid }'>${gptype.name }</a>"></c:set>
</c:forEach>
产品类别列表,请选择分类:<br>
导航:<a href="<html:rewrite action='/control/product/manage'/>?method=selectUI">顶级目录</a>
<c:out value="${menuout }" escapeXml="false"></c:out>
<form action="" name="main" method="post">
<input type="hidden" name="dicId"/>
<input type="hidden" name="dicName"/>
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<c:forEach items="${types}" var="type" varStatus="loop">
<c:if test="${fn:length(type.childtypes) > 0}">
<td>
<a href="<html:rewrite action='/control/product/manage'/>?method=selectUI&typeid=${type.typeid }"> ${type.name }</a>
</td>
</c:if>
<c:if test="${fn:length(type.childtypes) == 0}">
<td>
<input type="radio" onclick="javascript:getDicName('${type.typeid }','${type.name }')"/>${type.name}
</td>
</c:if>
<c:if test="${loop.count%5 == 0}">
</tr><tr>
</c:if>
</c:forEach>
</tr>
<br/>
</table>
<tr><td colspan="2" align="center">
<input type='button' name='create' value=" 确 认 " onClick="javascript:checkIt()">
<input type='button' name="cancel" onClick="javaScript:window.close()" value=" 取 消 ">
</td></tr>
</form>
</body>
</html>
对应的Action中的selectUI()方法:
public ActionForward selectUI(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ProductForm formbean = (ProductForm)form;
Integer typeid = formbean.getTypeid();
String wherejpql = "o.parent is null and o.visible = true";
//因为queryParams不一定存在,所以要用new Object[0]这种方式创建一个Object数组
Object[] queryParams = null;
if(typeid!= null && typeid>0){
wherejpql = "o.parent.id = ?1";
queryParams = new Object[]{typeid};
/**
* 通过typeid得到相应的产品类型的父类型,父类型的父类型,....,用来为实现导航菜单提供数据
*/
List<ProductType> gps = new ArrayList<ProductType>();
ProductType type = productTypeService.find(ProductType.class, typeid);
ProductType parent = type.getParent();
gps.add(type);
while(parent != null){
gps.add(0,parent);
parent = parent.getParent();
}
request.setAttribute("gps", gps);
}
/**
* 通过typeid得到相应的产品类型A的所有子类型,用来显示该产品类型A下拥有哪些类型
*/
List<ProductType> childtypes = productTypeService.getScrollData(ProductType.class, wherejpql, queryParams).getResultList();
//System.out.println("----------in ProductInfoManageActio------------childtypes'length is:" + childtypes.size());
request.setAttribute("types", childtypes);
return mapping.findForward("selectUI");
}
service一层就不用写了,很简单,用JPA做的。
分享到:
相关推荐
在Java Web开发中,"Struts2+Spring+IBatis"是一个常见的企业级应用框架组合,也被称为SSI(Struts2、Spring、iBatis)框架。这种组合提供了模型-视图-控制器(MVC)架构,事务管理,以及灵活的数据访问机制。以下是...
创建一个新的记录(Create)通常涉及到一个表单提交,Struts2的动作类接收到请求后,通过Spring的依赖注入获取到相应的Service,Service再调用DAO实现数据持久化。删除(Delete)操作与之类似,但需要根据特定的ID来...
"dwr框架+struts+Hibernate实现下拉菜单二级联动"是一个典型的Web应用程序开发技术组合,它旨在创建一个动态且响应式的交互式UI,特别是在处理关联数据时。下面我们将深入探讨这个主题。 首先,DWR(Direct Web ...
这个名为"用ssh实现的一个简单的分页"的项目,旨在为初学者提供一个关于如何在SSH框架下实现分页功能的示例。分页在大型数据集的展示中至关重要,它能够提高用户体验,避免一次性加载过多数据导致的性能问题。 首先...
S2SH(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架组合,它整合了Struts2的MVC设计模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能。本篇将详细解析如何在S2SH框架下实现分页...
1. **前端界面**:在JSP或HTML页面中,你需要创建一个导航结构,包含上一页、下一页的链接以及页码列表。这些链接应该包含当前页码作为参数,以便在点击时发送给服务器。 2. **Struts Action**:在Action类中,定义...
在IT行业中,SSH(Struts2、Spring、Hibernate)是一个常见的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。在这个项目中,我们主要关注如何利用SSH框架实现分页模型以及基本的CRUD(Create、Read、...
- `<action name="login" class="org.ext.service.loginAction">` 定义了一个名为"login"的Action,它的类是`org.ext.service.loginAction`。这个Action将处理用户的登录请求。 - `<result name="success">...
前端页面使用HTML、CSS和JavaScript,配合Bootstrap进行布局和功能实现。最后,通过单元测试确保各模块功能正常,部署到服务器进行实际运营。 【总结】 基于SSH的便利店运营平台设计与实现,充分利用了各组件的...
SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的依赖注入(DI)和面向切面编程(AOP),Struts的MVC设计模式,以及Hibernate的对象关系映射(ORM)工具。在本...
在分页场景下,通常会显示一个导航栏,包含上一页、下一页、页码选择等元素,这些都需要通过Action返回的分页信息来动态生成。 - **JSTL(JavaServer Pages Standard Tag Library)**或EL(Expression Language):...
本项目“用Vue高仿网易云音乐”正是利用Vue.js的强大功能,实现了一个功能完备的Web应用程序,旨在模仿网易云音乐的用户界面和核心功能。下面我们将深入探讨这个项目中的关键技术和实现细节。 1. **Vue.js基础知识...
怎样把这些技术组合起来,形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。 此步骤一般主要由架构设计师完成,设计师将根据项目需求,对J2EE体系中的各处技术进行筛选取舍,并考虑到开发...
SSH框架是Java Web开发中常用的三大框架:Struts、Spring和Hibernate的组合,它们分别负责表现层、控制层和持久层的功能...通过学习和实践这个项目,开发者可以深入理解如何整合这些技术,实现一个完整的Web应用程序。
SSH,全称Struts2、Spring、Hibernate,是Java Web开发中的一个经典组合,主要用于构建企业级应用。这里我们主要讨论的是Struts2框架,它是一个基于MVC设计模式的Web应用框架,常用于处理HTTP请求和响应。 在Struts...
19.2.2 创建一个空白的插件项目 331 19.3 RCP应用程序的开发 333 19.3.1 RCP应用开发初步 333 19.3.2 创建用户自定义的菜单和工具条 338 19.4 本章小结 341 第20章 网上宠物商店(JSP+JavaBean) 342 20.1 系统需求...
动作监听器(Action and Direct listeners)和直接服务(Direct service)、动作服务(Action service)则用于处理用户的操作请求,实现页面的动态响应。 七、设计Tapestry应用 设计一个Tapestry应用需要考虑多个...
1.在myeclipse中新建一个项目jeecms,将服务器中jeecms项目下web-inf文件夹下内容拷到新建项目中 解压缩jeecms-3.0.2-final-src,在src文件夹下会看到有三个压缩文件,如果只想进行普通的二次开发,可以只导入cms这...
- `Service Worker`:现代浏览器的离线存储技术,提供缓存和推送通知等功能。 10. Web组件: - 自定义元素:使用`<custom-element-name>`定义新的HTML元素。 - Shadow DOM:提供组件的封装,防止样式冲突。 ...