提起Jsp的动作,第一感觉是麻烦,第二感觉是用处不大。但是我们二期的考试题中又非常多,很多人提起UseBean
setProperty getProperty就感觉头大。现在我们来总结一下:
其实jsp中使用动作并不难我们给一个例子看看:
我们有一个com.xaccp.vo.ProductBean 类:
在定义Bean时,注意:
1、 必须有一个默认的构造函数。
2、 属性要有getter,setter方法。
3、 get,set方法中不能出现如getPName(),setPName(…)的现象,命名要符合规范,但是get,set后面仅接着有2个大写字母时,经常在自省时出现异常。具体的原因不太清楚。
在test1.jsp中,我们有如下代码:
……
<!--
useBean
动作这里可以看作为:
ProductBean pro=new
ProductBean,
其实有更大的作用,在useBean中还有一个属性
scope,scope属性有四个值分别是:
page,request,session,application,默认是page,我们以session为例进行说明:
<jsp:useBean id="pro"
class="com.xaccp.vo.ProductBean" scope="session"/>
相当于java代码:
ProductBean
pro=(Product)session.getAttribute("pro" );
if (pro==null)
{
pro=new
ProductBean();
session.setAttribute("pro",pro);
}
因此在bean中必须有默认构造方法。
-->
<jsp:useBean id="pro"
class="com.xaccp.vo.ProductBean"/>
<!--
调用对象pro的set方法对pro进行赋值:
实质就是对标准范围中键pro对应的对象进行操作。
下面的代码相当于:
ProductBean
pro=(ProductBean)pageContext.getAttribute(“pro”);
If (pro==null)
{
pro=request.getAttribute(“pro”);
if (pro==null)
{
pro=session.getAttribute(“pro”);
if (pro==null)
{
pro=application.getAttribute(“pro”);
}
}
}
pro.setPname(name1);
pro.setPrice(168);
-->
<jsp:setProperty name="pro"
property="pname" value="name1"/>
<jsp:setProperty name="pro"
property="price" value="168"/>
<!—
该方法同样的道理,也是先从标准范围中取到pro对象,再调用pro的get方法。Pro是对应的标准范围中的键。
-->
pname:<jsp:getProperty name="pro"
property="pname"/>
<br/>
price:<jsp:getProperty name="pro"
property="price"/>
……
因此可以看出useBean,setProperty,getProperty的动作是没有联系的,只不过经常在一起使用而已。他们只是对标准范围的操作而已。也就是说<jsp:getPropery>,<jsp:setProperty>,<jsp:useBean>只是对标准范围(pageContext,request,session,application)进行操作而已。相互间的联系也仅仅是通过标准范围进行联系。因此我们可以手工在java代码中放入标准范围一个对象,比如在servlet中:
request.getSession().setAttribute(“pro”,new
ProductBean());
然后在jsp页面中就可以进行<jsp:getPropery>,<jsp:setProperty>操作了,当然这时在jsp界面中放入<jsp:useBean>主要是防止NullPointerException而已。
此外,在<jsp:setProperty>中的功能不仅如此,它还具有接收请求参数的功能。比如,在test.jsp中有如下代码:
<a
href=”test1.jsp?name=name1&price=168”>测试一下</a>
我们把test1.jsp做如下修改:
<jsp:useBean id="pro"
class="com.xaccp.vo.ProductBean"/>
<jsp:setProperty name="pro"
property="pname" param="name"/>
<jsp:setProperty name="pro"
property="price" param=”price”/>
pname:<jsp:getProperty name="pro"
property="pname"/>
<br/>
price:<jsp:getProperty name="pro"
property="price"/>
那么我们从test1.jsp页面进入test.jsp中时就会显示test1.jsp请求过来的值。我们可以看到把属性value换成param,属性param的值就是请求的参数名。
在上面的示例中我们看到:
<jsp:setProperty name="pro"
property="price" param=”price”/>
中property属性与param属性的值是相同的,这时候我们就可以省略属性param,test1.jsp变成这样:
<jsp:useBean id="pro"
class="com.xaccp.vo.ProductBean"/>
<jsp:setProperty name="pro"
property="pname" param="name"/>
<jsp:setProperty name="pro"
property="price"/>
<!—省略了属性param=”price”
-->
pname:<jsp:getProperty name="pro"
property="pname"/>
<br/>
price:<jsp:getProperty name="pro"
property="price"/>
我们得到启示,把test.jsp中的请求参数修改一下,让参数name修改为pname与test1.jsp中<jsp:setProperty>的property的值相同。我们就可以把test.jsp修改为:
<a href=”test1.jsp?pname=pname1&price=
168”>测试一下</a>
同时我们把test1.jsp修改为:
<jsp:useBean id="pro"
class="com.xaccp.vo.ProductBean"/>
<jsp:setProperty name="pro"
property="pname"/>
<!—省略了
param="name" -->
<jsp:setProperty name="pro"
property="price"/>
<!—省略了属性param=”price”
-->
pname:<jsp:getProperty name="pro"
property="pname"/>
<br/>
price:<jsp:getProperty name="pro"
property="price"/>
到目前为止我们看到请求的参数与bean的属性是相同的,ok,我们就可以进一步把test1.jsp简化为:
<jsp:useBean id="pro"
class="com.xaccp.vo.ProductBean"/>
<jsp:setProperty name="pro"
property="*"/>
<!—
全部匹配,就可以进一步的简化-->
pname:<jsp:getProperty name="pro"
property="pname"/>
<br/>
price:<jsp:getProperty name="pro"
property="price"/>
呵呵,够了,一般的情况下初学者就开始晕了。
分享到:
相关推荐
实验2的内容主要围绕JSP动作标记中的include和forward动作标记来展开,通过实验练习掌握这些动作标记的使用方法和它们对页面动态加载及转向控制的应用。 首先,include动作标记是用于在JSP页面运行时动态地包含其他...
jsp 标准动作是 JSP 页面中的一种重要组件,用于控制 Servlet 引擎的行为。jsp 标准动作利用 XML 语法格式的标记来实现动态地插入文件、重用 JavaBean 组件、把用户重定向到另外的页面、为 Java 插件生成 HTML 代码...
JavaBean 和 JSP 中的标准动作学习
在JavaServer Pages (JSP) 技术中,指令(Directives)和动作(Actions)是两种关键元素,用于扩展和控制页面的行为。本篇将详细介绍JSP中的`page`指令,以及`include`指令与相关动作`<jsp:include>`, `<jsp:forward...
在JSP中,JavaBean通常作为数据模型来使用,而JSP标准动作则提供了一种方便的方式来操作这些JavaBean。 首先,要创建一个JavaBean,它需要满足以下三个条件: 1. 类必须是公共的(public)。 2. 类必须有一个无参数...
JSP动作标签是JSP中用于执行特定操作的一种方式,它们以`<jsp:action>`的形式存在。本篇文章主要探讨JSP中的五个关键动作,并对比`<jsp:include>`指令和动作的区别。 1. **创建Bean对象**: `<jsp:useBean>`动作...
总结起来,JavaBean 是 Java Web 开发中的一个重要概念,它是一种遵循特定编码规范的可重用组件,通过 JSP 标准动作可以方便地在 JSP 页面中使用。JavaBean 与 JSP 标准动作的结合,使得开发者能够将表现层与业务...
在JavaServer Pages (JSP) 技术中,七大标准动作是开发动态网页的重要组成部分。这些动作提供了在页面上操作数据、控制流程和与服务器交互的功能。以下是对JSP七大标准动作的详细解释: 1. **<jsp:include>** 这...
JSP动作用于引入现有的组件或控制JSP引擎的行为。主要的动作标签包括: - **jsp:include**:动态包含文件。 - **jsp:param**:传递参数。 - **jsp:forward**:转发请求。 示例代码如下: ```jsp <jsp:include ...
在JSP页面中,我们通过使用隐式对象可以更加方便地实现我们的效果。隐式对象包含: request response out ---- 输入输出对象 pageContext session application ---- 应用作用域对象 page config ---- Servlet对象...
在本篇文档中,我们将深入探讨JSP标准动作,特别是其中的`<jsp:useBean>`、`<jsp:setProperty>`、`<jsp:getProperty>`、`<jsp:include>`和`<jsp:forward>`。这些动作是JSP中用于处理JavaBean和页面交互的关键元素,...
掌握JavaBean的使用 掌握JSP动作 掌握JSP开发模式
JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。 JSP动作包括: jsp:include:在页面被请求的时候...
在JavaServer Pages (JSP) 技术中,标准动作是预定义的XML标签,用于简化页面开发,增强可维护性和可移植性。本实例旨在深入解析JSP标准动作的使用,帮助开发者更好地理解和应用这些功能。 JSP标准动作分为五类:`...
JavaWeb开发技术中,JSP动作元素是用于增强动态网页功能的重要组成部分,它们允许开发者在JSP页面中集成各种资源,实现数据的交互和页面的动态构建。下面将详细讲解这些动作元素及其用法。 1. **jsp:include**: -...
JSP动作是JSP元素之一,它们并不像脚本元素那样在服务器上执行,而是由JSP引擎在转换成Servlet时处理。JSP动作主要分为以下几类: 1. `<jsp:include>`:用于在页面渲染时动态包含其他文件,可以是静态资源(如HTML...
JSP标准动作是JSP规范中定义的一组标签,用于完成特定功能,如创建和操作JavaBean、包含外部文件、转发请求等。这些动作标签采用XML语法编写,在JSP页面被编译成Servlet之前由JSP容器解释执行。它们通常以`<jsp:...
JSP动作元素是JSP页面中的一种基本组件,用于实现各种逻辑操作和数据处理。在本文中,我们将深入探讨JSP动作元素的概念、类型、语法格式和应用场景。 一、JSP动作元素概述 JSP动作元素是JSP页面中的一种特殊元素,...
### 实验2 JSP指令标记与JSP动作标记(3.20)——知识点解析 #### 实验背景及目标 本次实验旨在加深学生对JSP技术的理解与运用能力,特别是针对JSP指令标记与JSP动作标记的学习。通过具体的操作实践,使学生能够熟练...