<%@ page contentType="text/html;charset=GB2312" %>  <!-- jsp指令标签 -->
<html>
<head>
<title>梯形面积的计算</title>
</head>
<body>
<%! public class square          //面积计算函数代码
    {
       double u;
       double d;
       double h;
       square(double u,double d,double h)
       {
          this.u=u;
          this.d=d;
          this.h=h;
       }
       double area()
       {
          return (u+d)*h/2;
       }
    }
%><%
request.setCharacterEncoding("gb2312");
String u=request.getParameter("up");        //以字符串形式获取从客户端传来的梯形上底参数的值;
String d=request.getParameter("down");      //以字符串形式获取从客户端传来的梯形下底参数的值;
String h=request.getParameter("height");    //以字符串形式获取从客户端传来的梯形高参数的值;double up=10;         //将up参数初始化;
double down=20;       //将down参数初始化;
double height=30;     //将height参数初始化;if(u!=null)
{
   up=Double.valueOf(u).doubleValue();    //如果从页面text文本框传来的参数的值不为空,则把它的值赋值给up;
}
else if(d!=null)
{
   down=Double.valueOf(d).doubleValue();  //如果从页面text文本框传来的参数的值不为空,则把它的值赋值给down;
}
else if(h!=null)
{
   height=Double.valueOf(h).doubleValue();//如果从页面text文本框传来的参数的值不为空,则把它的值赋值给height;
}
else 
{
   //out.print("<p>数据值不能小于等于0或者为空,请重新输入:");
}
square cc=new square(up,down,height);
%><form name="frm">
<p>请输入梯形的上地:<br>
<input type="text" name="up">
<p>请输入梯形的下地:<br>
<input type="text" name="down">
<p>请输入梯形的高:<br>
<input type="text" name="height">
<p>梯形的面积:
<input type="text" name="result"><p><input type="button" value="计算面积" onclick="result.value=<%=cc.area()%>;">
</form></body>
</html>      
各位大哥,帮小弟看看这段代码出了什么问题了,为什么在面积文本框内不能输出输出我想要的答案,而是0啊???但是如果把double up=0,down=0,height=0不初始化的话,代码又出现错误,求教育求教导

解决方案 »

  1.   

    1. “计算面积”那个按钮是button按钮,不能提交表单。你点击按钮,result文本框的值也只是刚开始页面第一次刷新后的值,并不能随着你表单里面的值改变而改变。
    2.对表单项的完整性判断改为 if(u!=null && !"".equals(u)) 建议你把按钮的type属性改为submit。onclick这个函数就没有必要调用了。
    <input type="text" name="result" value="<%=cc.area()%>">
      

  2.   

    你的按钮都没跳转,页面也没刷新,那square 对象当中的所有属性的值也都是初始值,当然也就撒0了撒
    其实不用这么麻烦,直接一个JS计算就搞定了。
    <form name="frm">
    <p>请输入梯形的上地:<br>
    <input id="u" type="text" name="up">
    <p>请输入梯形的下地:<br>
    <input id="d" type="text" name="down">
    <p>请输入梯形的高:<br>
    <input id="h" type="text" name="height">
    <p>梯形的面积:
    <input id="area" type="text" name="result"><p><input type="button" value="计算面积" onclick="calculateArea()">
    </form>function calculateArea(){
        var u = document.getElementById("u");
        var d = document.getElementById("d");
        var h = document.getElementById("h");
        var area = (u+d)*h/2;
        var areaText = document.getElementById("area");
        areaText .value = area;
    }
    }
      

  3.   

    可是老师给的就是javascript函数,叫我们用jsp来做唉