我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 一个 JSP 使用 JavaBean 的问题 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

haoran





性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
家族: 东北一家人
发贴: 718
威望: 0
浮云: 1121
在线等级:
注册时间: 2006-10-02
最后登陆: 2009-07-27

5come5帮你背单词 [ entity /'entiti/ n. 存在;实体 ]


一个 JSP 使用 JavaBean 的问题

calculate.jsp  源代码如下


<%@ page contentType="text/html;charset=GB2312"%>
<jsp:useBean id="calculator" scope="request" class="ch06.SimpleCalculator">
    <jsp:setProperty name="calculator" property="*"/>
</jsp:useBean>

<html>
<head>
<title>简单计算器</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
</head>

<body>
<p align=center><b>简单计算器</b>
<hr>
计算结果:
<%
try
{
calculator.calculate();
out.println(calculator.getFirst()+calculator.getOperator()+calculator.getSecond()+"="+calculator.getResult());
}
catch(Exception e)
{
out.println(e.getMessage());
}
%>
<hr>
<form action="calculate.jsp" method=get>
<table width="75%">
  <tr>
      <td align=right>第一个参数</td>
      <td><input type=text name="first"></td>
  </tr>
  <tr>
      <td align=right>操作符</td>
      <td><select name="operator">
                  <option value="+">+</option>
                  <option value="-">-</option>
                  <option value="*">*</option>
                  <option value="/">/</option>
          </select>
      </td>
  </tr>
  <tr>
      <td align=right>第二个参数</td>
      <td><input type=text name="second"></td>
  </tr>
  <tr>
    <td></td>
    <td><input type=submit value=计算></td>
  </tr>
</table>
</form>
</body>
</html>


SimpleCalculator.java  源代码如下

package ch06;
public class SimpleCalculator
{
  private String first;
  private String second;
  private double result;
  private String operator;

public void setFirst(String first){
    this.first=first;
    }
public void setSecond(String second){
    this.second=second;
    }
public void setOperator(String operator){
    this.operator=operator;
    }
public String getFirst(){
    return this.first;
    }
public String getSecond(){
    return this.second;
    }
public String getOperator(){
    return this.operator;
    }

public double getResult(){
    return this.result;
    }

public void calculate(){
    double one=Double.parseDouble(first);
    double two=Double.parseDouble(second);
    try{
        if(operator.equals("+")) result=one+two;
          else if(operator.equals("-")) result=one-two;
              else if(operator.equals("*")) result=one*two;
                  else if(operator.equals("/")) result=one/two;
      }
    catch(Exception e){
                      System.out.println(e);
                      }
    }
}



用浏览器浏览产生错误如下


HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /myweb/calculate.jsp(2,0) The value for the useBean class attribute ch06.SimpleCalculator is invalid.
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1223)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3284)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:189)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.12


小弟初次学习,求高人指点


[ 此贴被haoran在2007-10-16 11:33重新编辑 ]
顶端 Posted: 2007-10-16 10:25 | [楼 主]
datuz



性别: 帅哥 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1425
威望: 3
浮云: 399
在线等级:
注册时间: 2006-09-15
最后登陆: 2009-10-03

5come5帮你背单词 [ rob /rob/ n. 抢劫,非法剥夺,使丧失 ]


你用的那个类是不是路径有问题
顶端 Posted: 2007-10-16 11:55 | [1 楼]
haoran





性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
家族: 东北一家人
发贴: 718
威望: 0
浮云: 1121
在线等级:
注册时间: 2006-10-02
最后登陆: 2009-07-27

5come5帮你背单词 [ lean /li:n/ vi. 倾斜,歪斜,屈身,躬身,靠,依 ]


Quote:
引用第1楼datuz于2007-10-16 11:55发表的  :
你用的那个类是不是路径有问题


我是把SimpleCalculator.java  和SimpleCalculator.class保存在了/WEB-INF/classes/ch06里面的
顶端 Posted: 2007-10-16 14:54 | [2 楼]
datuz



性别: 帅哥 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1425
威望: 3
浮云: 399
在线等级:
注册时间: 2006-09-15
最后登陆: 2009-10-03

5come5帮你背单词 [ prompt /prompt/ a. 敏捷的,迅速的,果断的,即刻的;vt. 激起,怂恿,敦促,鼓舞 ]


Quote:
引用第2楼haoran于2007-10-16 14:54发表的  :


我是把SimpleCalculator.java  和SimpleCalculator.class保存在了/WEB-INF/classes/ch06里面的

classes里面是编译过的类文件,java文件放src下面
顶端 Posted: 2007-10-16 15:46 | [3 楼]
haoran





性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
家族: 东北一家人
发贴: 718
威望: 0
浮云: 1121
在线等级:
注册时间: 2006-10-02
最后登陆: 2009-07-27

5come5帮你背单词 [ default /di'fo:lt/ n. & v. 拖欠,违约,欠缺,默认,缺省 ]


Quote:
引用第3楼datuz于2007-10-16 15:46发表的  :

classes里面是编译过的类文件,java文件放src下面



谢谢蝈蝈,我会按照你说的去做的
顶端 Posted: 2007-10-16 19:00 | [4 楼]
寒雨



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1007
威望: 0
浮云: 1128
在线等级:
注册时间: 2005-11-20
最后登陆: 2008-06-26

5come5帮你背单词 [ duty-free // a. 免税的 ]


你的那个method=get
是怎么回事
要加引号
顶端 Posted: 2007-10-16 22:01 | [5 楼]
cz3010



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 3695
威望: 0
浮云: 1453
在线等级:
注册时间: 2007-09-10
最后登陆: 2012-02-14

5come5帮你背单词 [ linen /'linin/ n. 亚麻布,亚麻制品 ]


jsp看浏览器的错误就算了
那个看不出来多少的
主要是你自己的经验
JSP尽量不要与HTML代码混一块,分开写
顶端 Posted: 2007-10-18 21:29 | [6 楼]
cz3010



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 3695
威望: 0
浮云: 1453
在线等级:
注册时间: 2007-09-10
最后登陆: 2012-02-14

5come5帮你背单词 [ kiss /kis/ v. & n. 吻 ]


你可以把java代码写成一个文件,把它们包含进来就可以了
像你这样,太乱了
顶端 Posted: 2007-10-18 21:30 | [7 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.013128(s) query 5, Time now is:06-04 00:45, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号