`

Stuts2 使用DispatchAction做一个简单的计算器

 
阅读更多
使用DispatchAction做一个简单的计算器

DispatchAction是Struts中Action中的一种,为一种动态Action,可以处理相同类型的方法

1.calculator.jsp(计算页面)

  1. <%@pagelanguage="java"pageEncoding="GB18030"%>
  2. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  3. <html>
  4. <head>
  5. <title>calculator.jsp</title>
  6. <mce:scripttype="text/javascript"><!--
  7. functionfun(obj)
  8. {
  9. varelement=document.getElementById("method");
  10. element.value=obj;
  11. alert(element.value);
  12. form1.submit();
  13. }
  14. //--></mce:script>
  15. </head>
  16. <body>
  17. <center>
  18. <formaction="calculator.do"method="get"id="form1">
  19. <inputtype="text"name="num1"/><br>
  20. <inputtype="text"name="num2"/><br>
  21. <inputtype="hidden"id="method"name="method">
  22. <inputtype="button"name="add"value="加"onclick="fun('add')">
  23. <inputtype="button"name="sub"value="减"onclick="fun('sub')">
  24. <inputtype="button"name="mul"value="乘"onclick="fun('mul')">
  25. <inputtype="button"name="div"value="除"onclick="fun('div')">
  26. </form>
  27. </center>
  28. </body>
  29. </html>

2.CalculatorForm(传参,验证ActionFrom)

  1. packagecom.feng.struts.form;
  2. importjavax.servlet.http.HttpServletRequest;
  3. importorg.apache.struts.action.ActionErrors;
  4. importorg.apache.struts.action.ActionForm;
  5. importorg.apache.struts.action.ActionMapping;
  6. importorg.apache.struts.action.ActionMessage;
  7. publicclassCalculatorFormextendsActionForm{
  8. privatedoublenum1;
  9. privatedoublenum2;
  10. privatedoubleresult;
  11. publicdoublegetNum1(){
  12. returnnum1;
  13. }
  14. publicvoidsetNum1(doublenum1){
  15. this.num1=num1;
  16. }
  17. publicdoublegetNum2(){
  18. returnnum2;
  19. }
  20. publicvoidsetNum2(doublenum2){
  21. this.num2=num2;
  22. }
  23. publicdoublegetResult(){
  24. returnresult;
  25. }
  26. publicvoidsetResult(doubleresult){
  27. this.result=result;
  28. }
  29. publicActionErrorsvalidate(ActionMappingmapping,
  30. HttpServletRequestrequest){
  31. ActionErrorserrors=newActionErrors();
  32. if("".equals(num1)||"".equals(num2)){
  33. errors.add("num.null",newActionMessage("num.num"));
  34. }
  35. returnerrors;
  36. }
  37. publicvoidreset(ActionMappingmapping,HttpServletRequestrequest){
  38. //TODOAuto-generatedmethodstub
  39. }
  40. }

3.CalculatorAction(处理类DispatchAction)

  1. packagecom.feng.struts.action;
  2. importjavax.servlet.http.HttpServletRequest;
  3. importjavax.servlet.http.HttpServletResponse;
  4. importorg.apache.struts.action.ActionErrors;
  5. importorg.apache.struts.action.ActionForm;
  6. importorg.apache.struts.action.ActionForward;
  7. importorg.apache.struts.action.ActionMapping;
  8. importorg.apache.struts.action.ActionMessage;
  9. importorg.apache.struts.action.ActionMessages;
  10. importorg.apache.struts.actions.DispatchAction;
  11. importcom.feng.struts.form.CalculatorForm;
  12. publicclassCalculatorActionextendsDispatchAction{
  13. publicActionForwardadd(ActionMappingmapping,ActionFormform,
  14. HttpServletRequestrequest,HttpServletResponseresponse){
  15. CalculatorFormcalculatorForm=(CalculatorForm)form;
  16. calculatorForm.setResult(calculatorForm.getNum1()
  17. +calculatorForm.getNum2());
  18. returnmapping.findForward("ok");
  19. }
  20. publicActionForwardsub(ActionMappingmapping,ActionFormform,
  21. HttpServletRequestrequest,HttpServletResponseresponse){
  22. CalculatorFormcalculatorForm=(CalculatorForm)form;
  23. calculatorForm.setResult(calculatorForm.getNum1()
  24. -calculatorForm.getNum2());
  25. returnmapping.findForward("ok");
  26. }
  27. publicActionForwardmul(ActionMappingmapping,ActionFormform,
  28. HttpServletRequestrequest,HttpServletResponseresponse){
  29. CalculatorFormcalculatorForm=(CalculatorForm)form;
  30. calculatorForm.setResult(calculatorForm.getNum1()
  31. *calculatorForm.getNum2());
  32. returnmapping.findForward("ok");
  33. }
  34. publicActionForwarddiv(ActionMappingmapping,ActionFormform,
  35. HttpServletRequestrequest,HttpServletResponseresponse){
  36. CalculatorFormcalculatorForm=(CalculatorForm)form;
  37. if(calculatorForm.getNum2()==0){
  38. ActionErrorserrors=newActionErrors();
  39. //errors.add("num",newActionMessage("num.zero"));
  40. //super.saveErrors(request,errors);
  41. ActionMessagesmessage=newActionMessages();
  42. message.add("d",newActionMessage("num.zero"));
  43. super.saveErrors(request,message);
  44. returnmapping.findForward("no");
  45. }else{
  46. calculatorForm.setResult(calculatorForm.getNum1()
  47. /calculatorForm.getNum2());
  48. returnmapping.findForward("ok");
  49. }
  50. }
  51. }

4.ApplicationResources.properties(资源文件,显示错误信息)

  1. num.null=/u6570/u5B57/u4E0D/u80FD/u4E3A/u7A7A/!/!/!
  2. num.zero=/u6570/u5B57/u4E0D/u80FD/u4E3A/u96F6/!/!/!

5.struts-config.xml(配置文件)

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""http://struts.apache.org/dtds/struts-config_1_2.dtd">
  3. <struts-config>
  4. <data-sources/>
  5. <form-beans>
  6. <form-beanname="calculatorForm"type="com.feng.struts.form.CalculatorForm"/>
  7. </form-beans>
  8. <global-exceptions/>
  9. <global-forwards/>
  10. <action-mappings>
  11. <action
  12. attribute="calculatorForm"
  13. input="/form/calculator.jsp"
  14. name="calculatorForm"
  15. parameter="method"
  16. path="/calculator"
  17. scope="request"
  18. type="com.feng.struts.action.CalculatorAction">
  19. <forwardname="ok"path="/result.jsp"></forward>
  20. <forwardname="no"path="/error.jsp"></forward>
  21. </action>
  22. </action-mappings>
  23. <message-resourcesparameter="com.feng.struts.ApplicationResources"/>
  24. </struts-config>

分享到:
评论

相关推荐

    struts中dispatchAction用法

    以下是一个简单的DispatchAction使用步骤: 1. **创建DispatchAction类**:首先,你需要继承自org.apache.struts.actions.DispatchAction,创建一个新的Action类。在这个类中,你需要定义一系列处理特定业务的方法...

    struts1.2实现计算器示例

    Struts1.2是一个经典的Java Web框架,它在企业级应用开发中被广泛使用,尤其在Web MVC(Model-View-Controller)设计模式的应用上。本示例是基于Struts1.2实现的一个计算器程序,旨在帮助初学者理解Struts框架的工作...

    struts DispatchAction

    使用DispatchAction的另一个优点是,它可以结合Struts的国际化和主题功能,为不同的用户群体提供定制的视图。此外,通过将Action类中的方法组织成逻辑相关的组,可以更方便地进行权限控制和事务管理。 然而,需要...

    Struts2常用标签&DispatchAction.rar

    03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    利用struts标签,dispatchAction,实现增删改查

    在本教程中,我们将深入探讨如何利用Struts的标签库和DispatchAction来实现数据的增删改查操作,这对于初学者来说是一个非常实用的学习主题。 首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据...

    Struts中等同于DispatchAction类方法

    在早期的Struts版本中,`DispatchAction`类是一个核心组件,它允许我们通过单一的Action类处理多个请求,通过在请求URL中指定不同的方法名来调用不同的业务逻辑。 标题提到的"Struts中等同于DispatchAction类方法...

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证的示例

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。

    struts+oracle实现DispatchAction类

    在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...

    Struts(DispatchAction) + 存储过程 => 实现分页效果

    DispatchAction是Struts框架中的一个动作类,用于处理用户的请求并转发到相应的业务逻辑。在这个场景中,我们将探讨如何结合DispatchAction和存储过程来实现分页效果。 首先,理解分页的基本概念。分页是当数据量过...

    Struts 之 DispatchAction

    2. **实现DispatchAction**:接下来,你需要创建一个继承自`org.apache.struts.actions.DispatchAction`的类。例如,我们可以创建`YourDispatchAction.java`: ```java public class YourDispatchAction extends ...

    struts计算器

    Struts计算器是一个基于Java EE平台,使用Struts框架开发的简单计算器应用,主要目标是帮助初学者理解并实践Struts框架的基本用法。Struts是一个开源的MVC(Model-View-Controller)框架,用于构建可维护性高、结构...

    DispatchAction

    `DispatchAction`是由Apache Struts框架提供的一个基础类,它扩展了`Action`类。它的主要功能是将一个HTTP请求路由到多个方法,而不是只调用一个单一的方法来处理所有的请求。`DispatchAction`通过请求参数(通常是...

    Struts_DispatchAction的使用

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    DispatchAction实例

    2. **配置Struts-config.xml**:接下来,在`struts-config.xml`配置文件中,为`DispatchAction`创建一个或者多个配置项,每个配置项对应一个请求。在`&lt;action&gt;`元素中,使用`parameter`属性指定区分不同业务的方法的...

    struts 简单框架搭建

    - 创建一个新的Maven项目,因为Struts2通常与Maven一起使用,以管理依赖。 - 设置项目的目录结构,包括`src/main/java`(源代码)、`src/main/resources`(资源文件)、`src/main/webapp`(Web应用目录)等。 2. ...

Global site tag (gtag.js) - Google Analytics