这两天看JPetStore(ibatis和struts),我原想把struts标签都改成el和jstl(需要加standard和jstl jar文件)。结果把html 改的过程出了很多问题,html:text /areatext /radio/checkbox/ select/ option必须包含在html:form中,它们的property要对应form 的action对应的bean,select/ option比较麻烦。所以总结出来,改造过程可以分两步走:1 html:from部分不变,其中还涉及验证,2bean和logic可以改为el和jstl,不过改了之后竟然识别不出来。。郁闷,只好先暂停。。
在程序中文件的后缀名改为shtml,每一个页面都经过servlet。
下面是beanaction的内容:
private static final String NO_METHOD_CALL = "*";
private static final String SUCCESS_FORWARD = "success";
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) { ........... } else { .............. }
}
BaseBean bean = (BaseBean) form;
ActionContext.initCurrentContext(request, response);
if (bean != null) {
// Explicit Method Mapping
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) {
..........
}
}
// Path Based Method Mapping
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) {
.......
}
}
}
}
}
} catch (Exception e) {
forward = "error";
request.setAttribute("BeanActionException", e);
}
return mapping.findForward(forward);
}
BeanActionException(RuntimeException) 很值得学习4个构造函数 super()/super(string)/super(throwable)/super(string,throwable)
ActionContext (cookieMap parameterMap requestMap sessionMap applicationMap/request/response)
abstract class BaseHttpMap拥有四个抽象的方法getNames() /getValue()/putValue()/removeValue())
abstract class BaseHttpMap implements Map 要实现map的一些方法。
throw new UnsupportedOperationException("Cannot put value to ParameterMap.");
分享到:
相关推荐
**jpetstore** 是一个由Sun Microsystems公司开发的开源Web应用程序示例,它是一个基于Java技术的网上宠物商店。这个项目被设计成一个简单的“Hello, World”式的Web应用,用以展示Java技术和相关的框架在构建电子...
《深入解析jpetstore系统架构图:从设计到实现》 在IT行业的软件开发领域,jpetstore系统作为一款开源的网上宠物商店示例应用程序,以其清晰的分层架构、强大的功能性和高度可扩展性而著称。尤其在jpetstore5.0版本...
《jpetstore开源学习代码》是一个深受开发者欢迎的学习资源,特别针对那些希望深入理解J2EE(Java 2 Platform, Enterprise Edition)技术的初学者和有经验的程序员。jpetstore项目是一个示例应用,它展示了如何在...
《JPetStore-5.0:一个基于iBatis的开源电商示例解析》 JPetStore-5.0是一个著名的开源项目,它基于iBatis数据持久层框架,为开发者提供了一个完整的电子商务应用程序示例。这个项目由Apache Software Foundation...
Spring的测试支持也是其强大之处。JpetStore项目中的单元测试和集成测试可以利用Spring的TestContext框架,轻松地进行依赖注入,确保每个组件都能独立测试。同时,Spring的Mockito支持可以帮助我们模拟复杂的依赖...
《基于jpetstore的Spring、iBatis与Struts整合实战》 jpetstore项目是Spring框架的一个经典示例,它全面展示了如何将Spring、iBatis和Struts这三个核心的Java Web技术进行集成,构建出一个完整的MVC(Model-View-...
1. **依赖注入**:Spring的核心特性之一,通过XML配置或注解实现对象之间的依赖关系,使得代码更加松耦合,易于测试和维护。 2. **Spring MVC**:Spring的Web应用开发模型,负责处理HTTP请求,协调模型、视图和控制...
《基于Spring、Struts和iBatis的jpetstore4.0详解》 jpetstore4.0是一款经典的电子商务示例应用,它采用Spring、Struts和iBatis这三个核心框架构建,展示了如何在Java环境下实现一个完整的MVC(Model-View-...
iBATIS JPetStore是一个经典的开源项目,它用于展示iBATIS框架在实际应用中的使用。iBATIS是一个数据持久层框架,它简化了Java应用程序与数据库之间的交互,避免了直接编写大量的SQL语句。JPetStore是基于iBATIS实现...
**jpetstore宠物店程序详解** `jpetstore` 是一个经典的开源项目,它展示了如何使用Java技术栈,特别是Struts和Spring框架来构建一个完整的Web应用。这个程序旨在为用户提供一个在线购买宠物及其相关商品的平台,...
【标题】"springMVC+mybatis+jpetstore工程源码"揭示了这是一个结合了SpringMVC、MyBatis和jpetstore示例项目的工程,主要用于演示如何在实际开发中整合这三个技术。SpringMVC是Spring框架的一个模块,用于处理Web...
使用了mybatis的jpetstore-6
《MyEclipse中加载Spring的JPetStore详解》 在软件开发领域,Spring框架以其强大的功能和灵活性,已经成为Java企业级应用开发...希望本文的详细解析能对你的学习之路提供帮助,让你在Spring框架的应用上更加得心应手。
**标题解析:** "JPetStore (Struts + Spring + Hibernate)版" 是一个基于Java技术的开源电子商务示例应用,它集成了Struts、Spring和Hibernate三个关键的开源框架。这个版本相较于之前的JPetStore5.0,进行了重要的...
**jpetstore源码详解** `jpetstore`是一个经典的示例项目,它展示了如何使用Java企业级开发框架实现一个完整的网上宠物商店。这个源码是基于特定版本的Java技术栈构建的,如Spring框架、Struts框架或者MyBatis等,...
### SQL + JPetStore配置详解 #### 一、概述 JPetStore是一个广泛使用的开源示例应用程序,旨在演示企业级Java应用的构建过程。本文档将详细介绍如何在使用Oracle数据库时配置JPetStore,并解决配置过程中可能出现...
**Java Web应用:JPetStore静态页面** JPetStore是一个基于Java技术的示例Web应用程序,主要用于教学目的,让学生和开发者了解如何使用Java进行Web开发。这个项目通常出现在Java课程设计中,它提供了构建电子商务...
**标题解析:** "jpetstore源代码" 这个标题指的是一个开源项目或示例应用,名为"jpetstore",它提供了完整的源代码。这个项目可能是为了演示或者教学目的,让学习者能够理解并研究Java编程语言,特别是与Web应用...
《JPetStore4.0.5:Ibatis与Struts的经典结合》 JPetStore4.0.5是一个基于Java的开源电子商务应用,它展示了如何有效地利用Ibatis和Struts框架构建一个简单而实用的在线商店系统。这个版本在设计上保持了简洁性,...