<%@ page contentType="text/html;charset=utf-8" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%>
<html>
<body bgcolor="blanchedalmond">
<font size="3">
<form action="" method="post" name="form" >
输入运算数,选择运算符号:
<br><input type="text" name="numberone" size="6" />
<select name="operator">
<option value="+">+
<option value="-">-
<option value="*">*
<option value="/">/
</select>
<input type="text" name="numbertwo" size="6" />
<br><input type="submit" value="提交你的选择" name="submit" />
</form>
<%
String a=request.getParameter("numberone");
String b=request.getParameter("numbertwo");
String operator=request.getParameter("operator");
if(a==null||b==null){
a="";
b="";
}
if(a.length()>0&&b.length()>0){
%><computer:computer numberA="<%=a%>" numberB="<%=b%>" operator="<%=operator%>" />
计算结果是:<%=a%><%=operator%><%=b%>=<%=result%>
<%}%>
</font>
</body>
</html>
<%@ tag pageEncoding="utf-8" %>
<%@ attribute name="numberA" required="true" %>
<%@ attribute name="numberB" required="true" %>
<%@ attribute name="operator" required="true" %>
<%@ variable name-given="result" scope="AT-END" %>
<% try{
double a=Double.parseDouble(numberA);
double b=Double.parseDouble(numberB);
double r=0;
if(operator.equals("+"))
r=a+b;
else if(operator.equals("-"))
r=a-b;
else if(operator.equals("*"))
r=a*b;
else if(operator.equals("/"))
r=a/b;
jspContext.setAttribute("result",String.valueOf(r));
}
catch(Exception e){
jspContext.setAttribute("result","发生异常:"+e);
}
%>
type Exception report
message Unable to compile class for JSP:
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 40 in the jsp file: /inputnumber.jsp
result cannot be resolved to a variable
37: }
38: if(a.length()>0&&b.length()>0){
39: %><computer:computer numberA="<%=a%>" numberB="<%=b%>" operator="<%=operator%>" />
40: 璁$畻缁撴灉鏄細<%=a%><%=operator%><%=b%>=<%=result%>
41: <%}%>
42: </font>
43: </body>
乱码了,编码不对,你试试把中文去掉,如果正常了就是编码问题,检查下你对容器编码设置
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 40 in the jsp file: /inputnumber.jsp
result cannot be resolved to a variable
很明显,result不能被解析为一个变量。需要通过getAttribute获得。
改了下
计算结果:<%=a%><%=operator%><%=b%>=<%=request.getAttribute("result")%>
运行结果:
计算结果:5+8=null
出不了值 一直是=null