1数据导入
下载安装包,根据自带mysql脚本导入数据。在项目中加入mysql jdbc驱动。修改Src/Properties/Database.properties为
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jpetstore
username=root
password=root
(也可不做修改,使用安装包下自带的的数据库及驱动hsqldb.jar)
2关于actionbean的初步理解
源代码在lib下的beanaction.jar里,以下红色表示3种映射方式
public final ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String forward = SUCCESS_FORWARD;
try {
if (!(form instanceof BaseBean)) {
if (form != null) {
throw new BeanActionException("The form for mapping '" + mapping.getPath() + "' named '" + mapping.getName() + "' was not an instance of BaseBean. BeanAction requires an BaseBean instance.");
} else {
throw new BeanActionException("The form for mapping '" + mapping.getPath() + "' named '" + mapping.getName() + "' was null. BeanAction requires an BaseBean instance.");
}
}
BaseBean bean = (BaseBean) form;
ActionContext.initCurrentContext(request, response);
if (bean != null) {
// Explicit Method Mapping:如果parameter不为空且不为“*”,方法名由parameter本身决定
//如 struts-config.xml中
<action path="/shop/switchSearchListPage" type="org.apache.struts.beanaction.BeanAction"></action> name="catalogBean" scope="session" parameter="switchProductListPage"
validate="false">
<forward name="success" path="/catalog/SearchProducts.jsp"></forward>
Method method = null;
String methodName = mapping.getParameter();
if (methodName != null && !NO_METHOD_CALL.equals(methodName)) {
try {
method = bean.getClass().getMethod(methodName, null);
synchronized (bean) {
forward = bean.getInterceptor().intercept(new ActionInvoker(bean, method));
}
} catch (Exception e) {
throw new BeanActionException("Error dispatching bean action via method parameter ('" + methodName + "'). Cause: " + e, e);
}
}
// Path Based Method Mapping:如果parameter为空,方法由“/”后面带的参数决定
//如struts-config.xml中
<action path="/shop/viewCategory" type="org.apache.struts.beanaction.BeanAction"></action> name="catalogBean" scope="session"
validate="false">
<forward name="success" path="/catalog/Category.jsp"></forward>
if (method == null && !NO_METHOD_CALL.equals(methodName)) {
methodName = mapping.getPath();
if (methodName.length() > 1) {
int slash = methodName.lastIndexOf("/") + 1;
methodName = methodName.substring(slash);
if (methodName.length() > 0) {
try {
method = bean.getClass().getMethod(methodName, null);
synchronized (bean) {
forward = bean.getInterceptor().intercept(new ActionInvoker(bean, method));
}
} catch (Exception e) {
throw new BeanActionException("Error dispatching bean action via URL pattern ('" + methodName + "'). Cause: " + e, e);
}
}
}
}
}
} catch (Exception e) {
forward = "error";
request.setAttribute("BeanActionException", e);
}
return mapping.findForward(forward);
//如果parameter为“*”直接返回全局forward SUCCESS_FORWARD.如struts-config.xml中
<action path="/shop/index" type="org.apache.struts.beanaction.BeanAction"></action> name="catalogBean" parameter="*" validate="false">
<forward name="success" path="/catalog/Main.jsp"></forward>
}
}
分享到:
相关推荐
《jpetstore开源学习代码》是一个深受开发者欢迎的学习资源,特别针对那些希望深入理解J2EE(Java 2 Platform, Enterprise Edition)技术的初学者和有经验的程序员。jpetstore项目是一个示例应用,它展示了如何在...
《Spring框架学习:以JpetStore为例》 Spring框架是Java企业级应用开发中的核心框架,它为开发者提供了丰富的功能,简化了开发流程,提高了代码的可测试性和可维护性。JpetStore作为Spring的经典示例项目,是学习...
jpetstore的版本号为3-1-1,这表明它可能经过了多次更新和改进,以适应不断发展的技术和最佳实践。 该应用的核心是Java Servlet和JavaServer Pages(JSP)技术,它们是Java EE平台的重要组成部分,用于创建动态网页...
【jpetstore-3-1-1】是一个开源的电子商务示例应用,它展示了如何使用Java技术栈构建一个在线宠物商店。这个项目以其简洁的架构和对多种数据库的支持而受到关注,尤其适合初学者和开发者了解Java Web应用程序的开发...
学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore
总的来说,JPetStore-5.0不仅是一个电商应用实例,也是一个学习和研究Java Web开发、iBatis、Spring和MVC模式的宝贵资源。通过对这个项目的深入研究,开发者可以提升自己的技术能力,更好地理解和运用相关技术栈。
尤其在jpetstore5.0版本中,其系统架构图详细展示了系统的各个组成部分及其相互间的交互方式,为理解和学习基于Java的企业级应用开发提供了宝贵的资料。 ### 一、系统架构概述 jpetstore5.0系统架构遵循经典的MVC...
【标题】"用jpetstore学习架构 使用Spring boot+MyBatis +MySQL"是一个实践项目,旨在帮助开发者通过实现一个具体的电商应用——jpetstore,掌握基于Spring Boot、MyBatis和MySQL数据库的架构设计与开发技能。...
在压缩包文件名称 "springapp-petclinic" 中,"petclinic"可能是JPetStore的一个变体或者相关项目,通常Spring PetClinic是一个与JPetStore类似的学习资源,用于教授Spring Boot和Spring Data JPA等现代Spring技术。...
总的来说,jpetstore项目是一个极好的学习资源,对于想要深入理解和掌握Spring、iBatis和Struts的人来说,它是不可或缺的实践案例。通过分析和调试这个项目,你不仅可以提升自己的编程技能,还能对Java Web开发的...
《基于Spring、Struts和...这个项目对于学习和理解Java Web开发中的MVC架构、依赖注入、数据库操作等核心概念具有很高的参考价值。同时,通过实际操作这个项目,开发者可以进一步掌握这些技术在实际项目中的应用。
JPetStore是基于iBATIS实现的一个在线宠物商店示例,它的设计和实现为开发者提供了学习数据库驱动应用开发的良好实践。 首先,让我们深入了解一下iBATIS框架。iBATIS的核心理念是将SQL与Java代码分离,通过XML或...
总的来说,jpetstore项目是一个非常实用的学习资源,对于想要掌握Struts和Spring整合应用的开发者来说尤其有价值。通过实际操作,不仅可以了解如何构建一个完整的Web应用,还能加深对MVC架构、数据库操作、依赖注入...
综上所述,这个项目是一个学习和实践SpringMVC与MyBatis集成的绝佳实例,同时通过jpetstore的应用场景,可以帮助开发者了解如何在实际环境中配置和使用这两个框架。此外,由于使用MySQL作为数据库,因此也涉及到了...
综上所述,JPetStore (Struts + Spring + Hibernate)版是一个理想的学习资源,它展示了如何在实际项目中集成和使用这些流行的技术,对于Java Web开发人员来说,深入研究这个项目可以提升他们对现代企业级应用开发的...
1. **项目导入**:首先,你需要下载JPetStore的源码压缩包,这在你提供的文件列表中已经包含,名为"JPetStore"。在MyEclipse中,选择“File” -> “Import” -> “Existing Projects into Workspace”,然后在弹出的...
这个项目在原有的JPetStore基础上进行了修正,解决了两个已知的问题,使得其更加完善和稳定,对于初学者来说,它提供了从理论到实践的学习路径,有助于理解J2EE架构和相关技术。 **主要技术栈** 1. **JavaServer ...
- **Java编程**:jpetstore项目基于Java语言,因此学习者可以从中了解到面向对象编程、异常处理、类和对象、接口等Java基础知识。 - **MVC架构**:作为Web应用程序,jpetstore可能采用了Model-View-Controller...