使用bean的表单输出
让我的脚接触 JSP/bean 动作。我在输出页面上遇到 处理 JSP 页面 /foo/output.jsp 第 14 行时发生异常。 java文件编译正常。
输入.jsp
<p>First Number: <input type="text" name="first" value="" /></p>
<p>Second Number: <input type="text" name="second" value="" /></p>
<p>Action: <select name="compu">
<option value="1">+</option>
<option value="2">-</option>
<option value="3">*</option>
<option value="4">/</option>
</select></p>
<input type="submit" />
</form>
output.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.util.*" errorPage="" %>
<jsp:useBean id="foo" class="stuff.DerInput" scope="page" />
<jsp:setProperty name="foo" property="*" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<jsp:getProperty name="foo" property="calculation" />
<p>The result: <%= foo.getCalculation() %></p>
</body>
</html>
DerInput.Java
package stuff;
public class DerInput {
int first, second, compu, theresult;
String notation;
public void setFirst( int value )
{
first = value;
}
public void setSecond( int value )
{
second = value;
}
public void setCompu( int value )
{
compu = value;
}
public String getCalculation() {
switch (compu) {
case 1:
theresult = first + second;
notation = "+";
break;
case 2:
theresult = first - second;
notation = "-";
break;
case 3:
theresult = first * second;
notation = "*";
break;
case 4:
theresult = first / second;
notation = "/";
break;
}
return first + " " + notation + " " + second + " = " + theresult;
}
}
Getting my feet wet with JSP/bean action. I'm getting An exception occurred processing JSP page /foo/output.jsp at line 14 on my output page. The java file compiles ok.
input.jsp
<p>First Number: <input type="text" name="first" value="" /></p>
<p>Second Number: <input type="text" name="second" value="" /></p>
<p>Action: <select name="compu">
<option value="1">+</option>
<option value="2">-</option>
<option value="3">*</option>
<option value="4">/</option>
</select></p>
<input type="submit" />
</form>
output.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.util.*" errorPage="" %>
<jsp:useBean id="foo" class="stuff.DerInput" scope="page" />
<jsp:setProperty name="foo" property="*" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<jsp:getProperty name="foo" property="calculation" />
<p>The result: <%= foo.getCalculation() %></p>
</body>
</html>
DerInput.Java
package stuff;
public class DerInput {
int first, second, compu, theresult;
String notation;
public void setFirst( int value )
{
first = value;
}
public void setSecond( int value )
{
second = value;
}
public void setCompu( int value )
{
compu = value;
}
public String getCalculation() {
switch (compu) {
case 1:
theresult = first + second;
notation = "+";
break;
case 2:
theresult = first - second;
notation = "-";
break;
case 3:
theresult = first * second;
notation = "*";
break;
case 4:
theresult = first / second;
notation = "/";
break;
}
return first + " " + notation + " " + second + " = " + theresult;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看这里,
您期望页面作用域 bean
${foo}
在 scriptlet 作用域<% foo %>
中可用,如下所示出色地。这不是真的。它们不共享相同的变量范围。这只会导致getCalculation()
调用出现NullPointerException
,因为<% foo %>
为null.
使用 EL 代替。
(注意:
行在这里是多余的,所以我将其删除)Look here,
You're expecting that the page scoped bean
${foo}
is available in scriptlet scope<% foo %>
as well. This is not true. They do not share the same variable scope. This would only result in aNullPointerException
on thegetCalculation()
call, because<% foo %>
isnull
.Use EL instead.
(Note: that
<jsp:getProperty>
line is superfluous here, so I removed it)