提起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动作标记.pdf )实验2 JSP动作标记.pdf )实验2 JSP动作标记.pdf )实验2 JSP动作标记.pdf )
jsp动作jsp动作jsp动作jsp动作jsp动作jsp动作jsp动作
JavaBean 和 JSP 中的标准动作学习
在JSP页面中,我们通过使用隐式对象可以更加方便地实现我们的效果。隐式对象包含: request response out ---- 输入输出对象 pageContext session application ---- 应用作用域对象 page config ---- Servlet对象...
JSP动作元素 Java Servlet Jsp XML HTML JAVA WEB开发技术 JSP动作元素 语法 描述 jsp:include 在页面被请求的时候引入一个文件 jsp:useBean 寻找或者实例化一个JavaBean jsp:setProperty 设置JavaBean的属性 jsp:...
掌握JavaBean的使用 掌握JSP动作 掌握JSP开发模式
JavaBean和JSP中的标准动作 分析JavaBean和JSP中遇到的各种问题
本资源描述了jsp脚本元素、jsp指令和jsp动作
jsp标准语法中7大动作 简记(经典) jsp标准语法中7大动作 简记(经典)
JavaBean和JSP中的标准动作 学习笔记
page指令,include指令与<jsp:include>、<jsp:forward>、<jsp:fallback>、<jsp:plugin>动作
详细介绍了jsp标准动作各个标记及其属性的使用方法。
这个文档主要是针对jsp起大动作进行总结的 ..需要的朋友可以看看
JSP中的脚本和动作标签,非常详细,通俗易懂,希望对你有所帮助。
常用jsp标准标签 标准动作 包括判断迭代输出定义变量
02-JSP脚本元素指令及动作.ppt
JSP应用开发-JSP常用动作.pptx
java JSP标准动作文档 所有的标准动作,值得学习 简单易学 下来看看吧
JSP指令标记与JSP动作标记(3.20)操作文档