如何在JSP中使用<jsp:usebean>为请求范围定义bean之后在servlet中获取bean?</jsp:usebean>

时间:2014-06-06 06:47:15

标签: java jsp jstl jsp-tags

朋友们,我是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>

1 个答案:

答案 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属性