使用DispatchAction做一个简单的计算器
DispatchAction是Struts中Action中的一种,为一种动态Action,可以处理相同类型的方法
1.calculator.jsp(计算页面)
- <%@pagelanguage="java"pageEncoding="GB18030"%>
-
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
- <html>
- <head>
- <title>calculator.jsp</title>
-
<mce:scripttype="text/javascript"><!--
- functionfun(obj)
- {
-
varelement=document.getElementById("method");
- element.value=obj;
- alert(element.value);
- form1.submit();
- }
-
- </head>
- <body>
- <center>
-
<formaction="calculator.do"method="get"id="form1">
-
<inputtype="text"name="num1"/><br>
-
<inputtype="text"name="num2"/><br>
-
<inputtype="hidden"id="method"name="method">
-
<inputtype="button"name="add"value="加"onclick="fun('add')">
-
<inputtype="button"name="sub"value="减"onclick="fun('sub')">
-
<inputtype="button"name="mul"value="乘"onclick="fun('mul')">
-
<inputtype="button"name="div"value="除"onclick="fun('div')">
- </form>
- </center>
- </body>
- </html>
2.CalculatorForm(传参,验证ActionFrom)
- packagecom.feng.struts.form;
-
importjavax.servlet.http.HttpServletRequest;
-
importorg.apache.struts.action.ActionErrors;
-
importorg.apache.struts.action.ActionForm;
-
importorg.apache.struts.action.ActionMapping;
-
importorg.apache.struts.action.ActionMessage;
-
publicclassCalculatorFormextendsActionForm{
-
privatedoublenum1;
-
privatedoublenum2;
-
privatedoubleresult;
-
publicdoublegetNum1(){
-
returnnum1;
- }
-
publicvoidsetNum1(doublenum1){
-
this.num1=num1;
- }
-
publicdoublegetNum2(){
-
returnnum2;
- }
-
publicvoidsetNum2(doublenum2){
-
this.num2=num2;
- }
-
publicdoublegetResult(){
-
returnresult;
- }
-
publicvoidsetResult(doubleresult){
-
this.result=result;
- }
-
publicActionErrorsvalidate(ActionMappingmapping,
- HttpServletRequestrequest){
-
ActionErrorserrors=newActionErrors();
-
if("".equals(num1)||"".equals(num2)){
-
errors.add("num.null",newActionMessage("num.num"));
- }
-
returnerrors;
- }
-
publicvoidreset(ActionMappingmapping,HttpServletRequestrequest){
-
- }
- }
3.CalculatorAction(处理类DispatchAction)
- packagecom.feng.struts.action;
-
importjavax.servlet.http.HttpServletRequest;
-
importjavax.servlet.http.HttpServletResponse;
-
importorg.apache.struts.action.ActionErrors;
-
importorg.apache.struts.action.ActionForm;
-
importorg.apache.struts.action.ActionForward;
-
importorg.apache.struts.action.ActionMapping;
-
importorg.apache.struts.action.ActionMessage;
-
importorg.apache.struts.action.ActionMessages;
-
importorg.apache.struts.actions.DispatchAction;
-
importcom.feng.struts.form.CalculatorForm;
-
publicclassCalculatorActionextendsDispatchAction{
-
publicActionForwardadd(ActionMappingmapping,ActionFormform,
- HttpServletRequestrequest,HttpServletResponseresponse){
- CalculatorFormcalculatorForm=(CalculatorForm)form;
- calculatorForm.setResult(calculatorForm.getNum1()
- +calculatorForm.getNum2());
-
returnmapping.findForward("ok");
- }
-
publicActionForwardsub(ActionMappingmapping,ActionFormform,
- HttpServletRequestrequest,HttpServletResponseresponse){
- CalculatorFormcalculatorForm=(CalculatorForm)form;
- calculatorForm.setResult(calculatorForm.getNum1()
- -calculatorForm.getNum2());
-
returnmapping.findForward("ok");
- }
-
publicActionForwardmul(ActionMappingmapping,ActionFormform,
- HttpServletRequestrequest,HttpServletResponseresponse){
- CalculatorFormcalculatorForm=(CalculatorForm)form;
- calculatorForm.setResult(calculatorForm.getNum1()
- *calculatorForm.getNum2());
-
returnmapping.findForward("ok");
- }
-
publicActionForwarddiv(ActionMappingmapping,ActionFormform,
- HttpServletRequestrequest,HttpServletResponseresponse){
- CalculatorFormcalculatorForm=(CalculatorForm)form;
-
if(calculatorForm.getNum2()==0){
-
ActionErrorserrors=newActionErrors();
-
-
-
ActionMessagesmessage=newActionMessages();
-
message.add("d",newActionMessage("num.zero"));
-
super.saveErrors(request,message);
-
returnmapping.findForward("no");
-
}else{
- calculatorForm.setResult(calculatorForm.getNum1()
- /calculatorForm.getNum2());
-
returnmapping.findForward("ok");
- }
- }
- }
4.ApplicationResources.properties(资源文件,显示错误信息)
- num.null=/u6570/u5B57/u4E0D/u80FD/u4E3A/u7A7A/!/!/!
- num.zero=/u6570/u5B57/u4E0D/u80FD/u4E3A/u96F6/!/!/!
5.struts-config.xml(配置文件)
- <?xmlversion="1.0"encoding="UTF-8"?>
-
<!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""http://struts.apache.org/dtds/struts-config_1_2.dtd">
-
<struts-config>
-
<data-sources/>
-
<form-beans>
-
<form-beanname="calculatorForm"type="com.feng.struts.form.CalculatorForm"/>
-
</form-beans>
-
<global-exceptions/>
-
<global-forwards/>
-
<action-mappings>
-
<action
-
attribute="calculatorForm"
-
input="/form/calculator.jsp"
-
name="calculatorForm"
-
parameter="method"
-
path="/calculator"
-
scope="request"
-
type="com.feng.struts.action.CalculatorAction">
-
<forwardname="ok"path="/result.jsp"></forward>
-
<forwardname="no"path="/error.jsp"></forward>
-
</action>
-
</action-mappings>
-
<message-resourcesparameter="com.feng.struts.ApplicationResources"/>
-
</struts-config>
分享到:
相关推荐
一个比较简单的struts的dispatchAction 类的入门案例,适合初学者理解dispatchAction
用struts1.2写的一个计算器示例程序,供研究struts原理的初学者参考,其中action继承的DispatchAction。
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
利用struts标签,dispatchAction,实现增删改查 有利于初学者掌握struts!
简单的DispatchAction实例。。。。。。。。
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
Struts(DispatchAction) + 存储过程 => 实现分页效果
Struts 之 DispatchAction add
struts中的DispatchAction应用实例
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...
在页面中用js传递执行方法参数,传递到后台执行, 在你用的Action类中的方法名前加“run“及可被调用。
自习struts时做时,大家可以互相交流一下
DispatchAction与MappingDispatchAction
import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction等缺少
04 Struts_04DispatchAction : 分发Action,根据设置的参数值提交到不同的方法进行处理业务,演示数学运算 05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,...
DispatchAction的作用简单地说就是把原来我们写在多个acton里的操作放在同一个 action里处理。
struts1学习资料:里面包含struts源码工程 ActionServlet DispatchAction Action LookUpDispatchAction的用法 还包含html logic bean tiles标签的详细使用方法和validate验证框架的具体案例
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
传智播客的struts高级实战进阶 MVC模式的回顾 回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 使用复选框的技巧 使用下拉列表框的技巧 文件上传 DispatchAction的应用 ...