• 第二天(3)计算器


    /day32/WebRoot/calculator.jsp

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
          <script type="text/javascript" src="js/jquery-1.8.2.js"></script>
          <script type="text/javascript">
              $(function(){
                  $("form").submit(function(){
                      var flag = false;
                      if(validateNum1() && validateNum2()){
                          flag = true;
                      }    
                      return flag;
                  });
              });
              function validateNum1(){
                var flag = false;
                var num1 = $(":text:first").val();
                num1 = $.trim(num1);
                if(num1!=null && num1.length>0){
                    flag = true;
                }else{
                    alert("操作数一必填");
                    $(":text:first").focus();            
                }
                return flag;          
              }
              function validateNum2(){
                  var flag = false;
                var num2 = $(":text:last").val();
                num2 = $.trim(num2);
                if(num2!=null && num2.length>0){
                    flag = true;
                }else{
                    alert("操作数二必填");
                    $(":text:last").focus();            
                }
                  return flag;
              }
          </script>
      </head>
      <body>
          <form 
              action="/day32/calculator" 
              method="post">
              <table border="2" align="center">
                  <caption><h3>四则运算</h3></caption>
                  <tr>
                      <th>第一个操作数</th>
                      <td><input type="text" name="num1" maxlength="4" value="${requestScope.num1}"/></td>
                      <td>
                          <s:fielderror fieldName="num1"/>
                      </td>
                  </tr>
                  <tr>
                      <th>操作符</th>
                      <td>
                          <select name="opt">
                              <option value="+" ${requestScope.opt=='+'?'selected':''}>+</option>
                              <option value="-" ${requestScope.opt=='-'?'selected':''}>-</option>
                              <option value="*" ${requestScope.opt=='*'?'selected':''}>*</option>
                              <option value="/" ${requestScope.opt=='/'?'selected':''}>/</option>
                          </select>
                      </td>
                  </tr>
                  <tr>
                      <th>第二个操作数</th>
                      <td><input type="text" name="num2" maxlength="4" value="${requestScope.num2}"/></td>
                    <td>
                          <s:fielderror fieldName="num2"/>
                      </td>              
                  </tr>
                  <tr>
                      <td colspan="2" align="center">
                          <input type="submit" value="计算"/>
                      </td>
                  </tr>
              </table>
          </form>
          <hr/>
          <c:if test="${requestScope.flag=='showResult'}">
              ${requestScope.num1}
              ${requestScope.opt} 
              ${requestScope.num2} 
              ${requestScope.equ}
              ${requestScope.result}<br/>
          </c:if>
          ${requestScope.message}
      </body>
    </html>

    /day32/src/cn/itcast/web/struts2/work/CalculatorAction.java

    package cn.itcast.web.struts2.work;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    
    //计算
    public class CalculatorAction extends ActionSupport{
        private Integer num1;//操作数一
        private String opt;//操作符
        private Integer num2;//操作数二
        public Integer getNum1() {
            return num1;
        }
        public void setNum1(Integer num1) {
            this.num1 = num1;
        }
        public String getOpt() {
            return opt;
        }
        public void setOpt(String opt) {
            this.opt = opt;
        }
        public Integer getNum2() {
            return num2;
        }
        public void setNum2(Integer num2) {
            this.num2 = num2;
        }
        public void validateExecute() {
            String strNum1 = this.num1+"";
            String strNum2 = this.num2+"";
            if(strNum1!=null && strNum1.trim().length()>0){
                //只能输入1位到4位的数字,包括1位和4位
                if(strNum1.matches("^[0-9]{1,4}$")){
                    ;
                }else{
                    this.addFieldError("num1","操作数一必须是四位数字");
                }
            }else{
                this.addFieldError("num1","操作数一必填");    
            }
            if(strNum2!=null && strNum2.trim().length()>0){
                if(strNum2.matches("^[0-9]{1,4}$")){
                    ;
                }else{
                    this.addFieldError("num2","操作数一必须是四位数字");
                }
            }else{
                this.addFieldError("num2","操作数一必填");    
            }
        }
        public String execute() throws Exception {
            ActionContext.getContext().put("flag","showResult");
            if(this.opt.equals("+")){
                this.result = this.num1 + this.num2;
            }else if(this.opt.equals("-")){
                this.result = this.num1 - this.num2;
            }else if(this.opt.equals("*")){
                this.result = this.num1 * this.num2;
            }else if(this.opt.equals("/")){
                if(this.num2!=0){
                    this.result = this.num1 / this.num2;
                }else{
                    ActionContext.getContext().put("message","除数不能为0");
                }
            }
            return this.SUCCESS;
        }
        private Integer result;//结果
        private String equ = "=";//等号
        public Integer getResult() {
            return result;
        }
        public String getEqu() {
            return equ;
        }
    }

    /day32/src/cn/itcast/web/struts2/work/struts_work.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
        <package name="workPackage" extends="struts-default" namespace="/">
            <action 
                name="calculator" 
                class="cn.itcast.web.struts2.work.CalculatorAction" 
                method="execute">
                <result name="success" type="dispatcher">
                    /calculator.jsp
                </result>
                <result name="input" type="dispatcher">
                    /calculator.jsp
                </result>
            </action>
        </package>
    </struts>  
    在平凡中坚持前行,总有一天,会遇见优秀的自己
  • 相关阅读:
    【设计模式学习笔记】之 装饰者模式
    【实操笔记】MySQL主从同步功能实现
    Centos6.7安装mysql 5.6简单教程
    【转载备忘】PowerDesigner16.5基本使用
    win10安装配置jdk的环境变量
    eclipse配置虚拟路径后,每次启动tomcat都会虚拟路径失效的问题解决
    Tomcat配置虚拟路径访问容器外的硬盘资源
    编写代码常用快捷键
    python爬虫之scrapy框架介绍
    python面试题(一)
  • 原文地址:https://www.cnblogs.com/mao-19/p/5715871.html
Copyright © 2020-2023  润新知