zoukankan      html  css  js  c++  java
  • Struts2框架实现计算器功能

    1.新建Web Project

    2.导入Struts2库文件

    3.选择2.1的struts,拦截后缀选择所有

    4.编写主要的JSP页面,index.jsp(因为是直接在index上写内容,就不用在web.xml中更改欢迎页面了)

     1 <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
     2 
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6     <title>Struts2计算器</title>
     7   </head>
     8   
     9   <body>
    10     <form action="add.action">
    11         <input type="text" name="op1"/><br/>
    12         <input type="text" name="op2"/>
    13         <input type="submit" value="+">
    14     </form>
    15     <br/><br/>
    16     <form action="sub.action">
    
    17         <input type="text" name="op1"/><br/>
    18         <input type="text" name="op2"/>
    19         <input type="submit" value="-">
    20     </form>
    21     <br/><br/>
    22     <form action="mul.action">
    23         <input type="text" name="op1"/><br/>
    24         <input type="text" name="op2"/>
    25         <input type="submit" value="*">
    26     </form>
    27     <br/><br/>
    28     <form action="div.action">
    29         <input type="text" name="op1"/><br/>
    30         <input type="text" name="op2"/>
    31         <input type="submit" value="/">
    32     </form>
    33     <br/><br/>
    34   </body>
    35 </html>

    5.编写CalculatorAction.java

     1 package com.meng.action;
     2 
     3 import com.opensymphony.xwork2.ActionSupport;
     4 
     5 public class CalculatorAction extends ActionSupport {
     6 
     7     private int op1;
     8     private int op2;
     9     private int result;
    10     public int getOp1() {
    11         return op1;
    12     }
    13     public void setOp1(int op1) {
    14         this.op1 = op1;
    15     }
    16     public int getOp2() {
    17         return op2;
    18     }
    19     public void setOp2(int op2) {
    20         this.op2 = op2;
    21     }
    22     public int getResult() {
    23         return result;
    24     }
    25     public void setResult(int result) {
    26         this.result = result;
    27     }
    28     public String add()
    29     {
    30         result=op1+op2;
    31         return SUCCESS;
    32     }
    33     public String sub()
    34     {
    35         result=op1-op2;
    36         return SUCCESS;
    37     }
    38     public String mul()
    39     {
    40         result=op1*op2;
    41         return SUCCESS;
    42     }
    43     public String div()
    44     {
    45         result=op1/op2;
    46         return SUCCESS;
    47     }
    48     public String execute()
    49     {
    50         return SUCCESS;
    51     }
    52 }

    6.编写struts.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
     3 <struts>
     4     <package name="p1" extends="struts-default">
     5         <action name="add" class="com.meng.action.CalculatorAction" method="add">
     6             <result name="success">/result.jsp</result>
     7         </action>
     8         <action name="sub" class="com.meng.action.CalculatorAction" method="sub">
     9             <result name="success">/result.jsp</result>
    10         </action>
    11         <action name="mul" class="com.meng.action.CalculatorAction" method="mul">
    12             <result name="success">/result.jsp</result>
    13         </action>
    14         <action name="div" class="com.meng.action.CalculatorAction" method="div">
    15             <result name="success">/result.jsp</result>
    16         </action>
    17     </package>
    18 </struts>    

    7.编写result.jsp

     1 <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
     2 
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6     <title>结果页</title>
     7   </head>
     8   
     9   <body>
    10   <center>
    11     <h2>结果为&nbsp;${result}</h2>
    12     </center>
    13   </body>
    14 </html>

    需要注意的地方

    最后的result能直接取出的前提是action中要有它的get和set方法。

    写在后面的话

    这个计算器只实现了最基本的功能,已知的还会有被除数为0的bug,页面显示效果也十分简陋。

    不知为何选择拦截后缀的时候只能选择拦截所有,也就是/*,如果选择/action的话不能起作用。

    本来想在JSP页面中就指定在action中所用的方法,那样的话struts.xml文件可以少写一些,但是没成功,就用回这种方式了。

    一开始不知道MyEclipse可以这样添加Struts2框架,所以使用的方法是:

    1.建立Web Project

    2.把几个必须要的包放入lib文件夹中使之成为Reference Library

    3.写好各个所需要用到的JSP页面

    4.复制一个已经写好过滤器的web.xml文件(因为过滤器部分的代码容易写错)

    5.编写继承了ActionSupport类的Action(如果是直接使用接收数据的第一种方式action属性的话要写上各自属性的get和set方法,另外写入execute方法作为主要的执行方法,返回SUCCESS等其它常量,具体返回的字符串要与struts.xml中result的name相对应)

    6.编写struts.xml(如果希望运行的不是execute方法,要记得在action中添加method属性指定方法名。其实result的name就是执行action后的返回值,不同的返回值指向不同的页面)

    仅供入门者参考。出现错误的地方还望大家指出。

    感觉还想写好多东西,一时想不起了。想起再修改。

  • 相关阅读:
    文字标签和注释标签
    HTML文档的组成和标签的规范
    HTML概述
    javaWeb
    web开发的三层架构
    ASCII码表
    JDK的新特性
    Editplus的运行JAVA的配置
    Eclipse的断点调试
    Eclipse工作空间的基本配置
  • 原文地址:https://www.cnblogs.com/bettyling/p/3086459.html
Copyright © 2011-2022 走看看