手把手struts入门示例 (续)
2008-03-05 16:11
337 查看
上次我们不求甚解的入了门,现在我们再稍微提高提高。
struts是MVC结构的,上次我们只有VC两层,这次我们把业务逻辑分离出来,添加一个M层。文件结构如下:
Model
BusinessLogic: BusinessLogic.java 把业务逻辑独立出来,负责实现加法运算。
View
JSP Page: ①index.jsp ②queryForm.jsp ③showResult 负责用户交互(还是上次的文件,不用改动)
Control
ActionServlet 默认 负责处理request response等
ActionForm AddSampleQueryForm.java 把form里component以属性形式保存。就是负责保存数据罗(也不用改动
Action AddSampleAction.java 它就比较忙了,负责从form里取出数据,实行业务逻辑后把结果保存到bean中,再定向到适当的页面(forward)
其他
Utility Util.java 我们把常用的功能分离出来,这样在其他项目也可以重用
就是说,我们需要添加两个文件BusinessLogic.java 和Util.java ,另外 改动一下AddSampleAction.java
//BusinessLogic.java
package samples.add;
public class BusinessLogic ...{
//实现业务逻辑的方法
public int executeAdd(int parm1, int parm2) ...{
return parm1 + parm2;
}
//生成业务逻辑实体的方法(工厂模式)
public static BusinessLogic getInstance() ...{
return new BusinessLogic();
}
}
//Util.java
package samples.add;
public final class Util ...{
public static int atoi(String str) ...{
int ret = 0;
try ...{
ret = Integer.parseInt(str);
}
catch (NumberFormatException ex) ...{ }
return ret;
}
}
package samples.add;
//修改后的AddSampleAction.java
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AddSampleAction extends Action ...{
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
...{
AddSampleQueryForm queryForm = (AddSampleQueryForm)form;
int parm1 = Util.atoi(queryForm.getParm1());
int parm2 = Util.atoi(queryForm.getParm2());
BusinessLogic businessLogic = BusinessLogic.getInstance();
int result = businessLogic.executeAdd(parm1, parm2);
queryForm.setResult(String.valueOf(result));
return mapping.findForward("success");
}
}
把他们编译后放到classes下AddSampleAction.java所在的文件夹中。
这样我们就实现了一个麻雀虽小,五脏俱全的struts程序了。
struts是MVC结构的,上次我们只有VC两层,这次我们把业务逻辑分离出来,添加一个M层。文件结构如下:
Model
BusinessLogic: BusinessLogic.java 把业务逻辑独立出来,负责实现加法运算。
View
JSP Page: ①index.jsp ②queryForm.jsp ③showResult 负责用户交互(还是上次的文件,不用改动)
Control
ActionServlet 默认 负责处理request response等
ActionForm AddSampleQueryForm.java 把form里component以属性形式保存。就是负责保存数据罗(也不用改动
Action AddSampleAction.java 它就比较忙了,负责从form里取出数据,实行业务逻辑后把结果保存到bean中,再定向到适当的页面(forward)
其他
Utility Util.java 我们把常用的功能分离出来,这样在其他项目也可以重用
就是说,我们需要添加两个文件BusinessLogic.java 和Util.java ,另外 改动一下AddSampleAction.java
//BusinessLogic.java
package samples.add;
public class BusinessLogic ...{
//实现业务逻辑的方法
public int executeAdd(int parm1, int parm2) ...{
return parm1 + parm2;
}
//生成业务逻辑实体的方法(工厂模式)
public static BusinessLogic getInstance() ...{
return new BusinessLogic();
}
}
//Util.java
package samples.add;
public final class Util ...{
public static int atoi(String str) ...{
int ret = 0;
try ...{
ret = Integer.parseInt(str);
}
catch (NumberFormatException ex) ...{ }
return ret;
}
}
package samples.add;
//修改后的AddSampleAction.java
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AddSampleAction extends Action ...{
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
...{
AddSampleQueryForm queryForm = (AddSampleQueryForm)form;
int parm1 = Util.atoi(queryForm.getParm1());
int parm2 = Util.atoi(queryForm.getParm2());
BusinessLogic businessLogic = BusinessLogic.getInstance();
int result = businessLogic.executeAdd(parm1, parm2);
queryForm.setResult(String.valueOf(result));
return mapping.findForward("success");
}
}
把他们编译后放到classes下AddSampleAction.java所在的文件夹中。
这样我们就实现了一个麻雀虽小,五脏俱全的struts程序了。
相关文章推荐
- Struts入门程序示例及基本执行过程
- 手把手教struts2入门案例(不用struts标签实现)
- 手把手struts入门示例
- Struts2 快速入门(hello struts2 简单示例,配置开发模式,导入struts源码,设置struts.xml源码提示)
- Struts1.2基本配置入门
- Protocol Buffers十分钟上手:入门示例
- Struts2+Spring2+Hibernate3 web应用示例(一)
- cuda编程入门示例12
- windows socket编程入门示例2
- cuda编程入门示例17
- cuda编程入门示例22
- mongoDB 入门指南、示例
- Spring MVC 入门示例讲解
- 手把手教你ARC——iOS/Mac开发ARC入门和使用
- Myeclipse开发Struts应用程序示例
- Java Restful框架:Jersey入门示例(官方例子)
- iOS AutoLayout阅读笔记4------->AutoLayout入门动画示例(纯IB实现)
- java多线程入门知识及示例程序
- Struts2.0 入门系列文章 —— 转载 —— 很好很强大 !
- 【iOS7开发快速入门】代码示例3-5