朋友们,我是JSP
技术新手;我在使用<jsp:UseBean>
范围的request
标记设置beans属性时遇到问题。我想要做的是我在JSP页面中使用范围<jsp:UseBean>
的{{1}}和request
<form>
按钮设置beans属性我正在点击{{1}检查bean是否已添加到submit
的类。我无法将我的bean添加到servlet
。但是,当将范围更改为request scope
时,则没有问题。
为什么会如此。任何人都可以指导我。?
bean类
request scope
的index.jsp
session
CarServlet
package mypack;
public class Car {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
网页上的输出
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="car" class="mypack.Car" scope="request">
<jsp:setProperty name="car" property="id" value="111"></jsp:setProperty>
<jsp:setProperty name="car" property="name" value="Jeep"></jsp:setProperty>
</jsp:useBean>
<form method="post" action="CarServlet">
<input type="submit" value="submit">
</form>
</body>
</html>
答案 0 :(得分:3)
以前没有引入名称&#34;表示你还没有被告知 关于这个bean你的JSP。
您需要添加
<jsp:useBean id="taskBean" class="com.mybean.TaskBean" scope="request" />
使用jsp:getProperty
访问属性之前此外,
&#34;名称&#34; jsp:getProperty的属性应匹配&#34; id&#34;声明的bean的属性。
然后访问
<jsp:getProperty name="taskBean" property="multiplier" />
使用Scriptlet时使用
TaskBean taskBean =(TaskBean)request.getAttribute(&#34; taskBean&#34;); 检查您已添加&lt;%@ page import =&#34; com.mybean.TaskBean&#34;%&gt;你的JSP中的statemement。
因此,当JSP页面被编译为RequestScope_jsp.java时。
首先,它有你的bean的import语句。其次,_jspService方法有请求和响应参数作为参数。
_jspService(HttpServletRequest request, HttpServletResponse response)
因此,您可以转发JSP页面使用scriptlet访问它们。 EL也是如此。
记住拇指规则
:使用jsp:getProperty访问bean属性时,需要添加用于定位和实例化bean类的bean属性