浅析Struts 1.2
来源:互联网 发布:access数据库修改库别 编辑:程序博客网 时间:2024/05/18 17:39
-->>最近重温了一下Struts 1.2,和Struts 2.x相比,感觉各有优劣,估计是Struts 2用得比较上手,个人还是比较喜欢用Struts 2 ,估计这也是很多的想法吧!!
Struts1.2是一个基于Servlet的一个框架,为入侵式设计:
是不是初略的看了下Struts1.2的流程,感觉很简单!--->(相对于struts 2):
如图所示之后:next
好吧,说了一些废话,直接上图--->>
先看一下Struts1.2的执行流程吧(图为公司原创):
是不是初略的看了下Struts1.2的流程,感觉很简单!--->(相对于struts 2):
好吧,我总结了一下:
1-->.服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。
2-->.以登录为例:第一次进login.jsp会先实例化Form、把默认值(String默认为空字符串,整型默认为0)赋给表单元素。
3-->.输入用户名密码提交表单、提交到action属性的login.action,通过ActionServlet读struts-config.xml文件找到action下的path属性找到.action,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面.验证通过会实例化Action,执行Action的execute方法。
Struts1.2作为当年最为流行的 MVC框架,优点也十分明显:
---》:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。
了解了原理,我们来着手搞个案例:
你没有看错,这是我这个小列子的框架图。
进入主题:
第一步:导入jar库:
单击项目节点--->>右键-->>Myeclipse--->>AddStruts comp....:后面不用说了
第二步:进行Form,Action,Jsp视图的关联:(不做详细介绍)
右键-->new ->在other中找到Struts1.2 Form,Action &JSP-->next
如图:
如图所示之后:next
之后:就是贴代码了--->>
Form文件中:
public class MathForm extends ActionForm {
private String oper;
public String getOper() {
return oper;
}
public void setOper(String oper) {
if ("doAdd".equals(oper)) {
oper = "+";
}
if ("doSubtract".equals(oper)) {
oper = "-";
}
if ("doCheng".equals(oper)) {
oper = "*";
}
if ("doChu".equals(oper)) {
oper = "/";
}
this.oper = oper;
}
private MatchEntity match = new MatchEntity();
public MatchEntity getMatch() {
return match;
}
public void setMatch(MatchEntity match) {
this.match = match;
}
@SuppressWarnings("deprecation")
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if ("/".equals(oper)) {//除数为零时输出
if (match.getNum2() == 0) {
errors.add("match.num2", new ActionError("chu"));
}
}
return errors;
}
Action文件中 --->>
package com.lovesmile.oa.web.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import com.lovesmile.oa.biz.MatchBiz;
import com.lovesmile.oa.web.form.MathForm;
public class MathAction extends DispatchAction {
MatchBiz matchBiz=new MatchBiz();
public ActionForward doAdd(ActionMapping mapping, ActionFormform,
HttpServletRequest request, HttpServletResponse response){
MathForm mathForm = (MathForm) form;// TODO Auto-generatedmethod stub
Integer result = matchBiz.add(mathForm.getMatch());
request.setAttribute("result", result);
return mapping.findForward("success");
}
public ActionForward doSubtract(ActionMapping mapping,ActionForm form,
HttpServletRequest request, HttpServletResponse response){
MathForm mathForm = (MathForm) form;// TODO Auto-generatedmethod stub
Integer result = matchBiz.subtract(mathForm.getMatch());
request.setAttribute("result", result);
return mapping.findForward("success");
}
public ActionForward doCheng(ActionMapping mapping, ActionFormform,
HttpServletRequest request, HttpServletResponse response){
MathForm mathForm = (MathForm) form;// TODO Auto-generatedmethod stub
Integer result = matchBiz.cheng(mathForm.getMatch());
request.setAttribute("result", result);
return mapping.findForward("success");
}
public ActionForward doChu(ActionMapping mapping, ActionFormform,
HttpServletRequest request, HttpServletResponse response){
MathForm mathForm = (MathForm) form;// TODO Auto-generatedmethod stub
Integer result = matchBiz.chu(mathForm.getMatch());
request.setAttribute("result", result);
return mapping.findForward("success");
}
}
界面代码--->>:
<%@ page language="java"pageEncoding="UTF-8"%>
<%@ tagliburi="http://struts.apache.org/tags-bean"prefix="bean"%>
<%@ tagliburi="http://struts.apache.org/tags-html"prefix="html"%>
<html>
<head>
<title>JSP for MathFormform</title>
<scripttype="text/javascript">
function opera(opr){
document.forms[0].elements["oper"].value=opr;
document.forms[0].submit();
}
</script>
</head>
<body>
<form action="math.do" >
<input type="hidden"name="oper"/>
第一个数:<input type="text" name="match.num1"/> <br/>
第二个数:<input type="text" name="match.num2"/><br/>
<button type="button"onclick="opera('doAdd')">加</button>|<buttontype="button"onclick="opera('doSubtract')">减</button>|<buttontype="button"onclick="opera('doCheng')">乘</button>|<buttontype="button"onclick="opera('doChu')">除</button>
</form>
</body>
</html>
好吧,今天就到这了,详情-->>奥斯科技
0 0
- 浅析Struts 1.2
- struts result type
- javascript 浅析 对象 function
- Struts Message Resources 国际化
- struts2 Struts比较
- struts 基本标签
- Struts logic标签
- struts与struts 2 框架浅析
- The Struts dispatcher&…
- Struts result param详细设置
- Struts 2 框架解析
- 浅析struts-config.xml文件
- Struts 2 + Spring 2.0 + Hibernat…
- 浅析C# get set的简单用法
- loadrunner windows资源分析器浅析
- 浅析Struts 体系结构与工作原理
- 浅析Struts 体系结构与工作原理(图)
- 浅析Struts 体系结构与工作原理(图)
- 奥斯科技-开发类似于struts1.2的简…
- uva 11261 Bishops
- Struts2中Json格式异步数据交…
- Struts 2 框架解析
- Reverse Words in a String -LeetCode OJ
- 浅析Struts 1.2
- 论Hibernate的实体与表间的关系…
- Hibernate中继承关系注解配置
- Hibernate中集合配置详解
- Hibernate二级缓存配置详解
- hibernate悲观锁与乐观锁详解
- Hibernate高级模块解析
- Spring整合开发---Struts 2(注解…
- 基于模型的测试框架的想法 (三)