分享
 
 
 

UltraDev 4系列插件教程(5)之二

王朝other·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

⑸jsp:setProperty,设置Bean中的属性值

在面板上点击jsp:setProperty图标,如图10所示。

当点击jsp:setProperty图标以后,出现以下对话框,如图11所示:

如图11上,可以在Bean Id方框上选择已经在<jsp:useBean>中创建的Bean实例的名字,在这个例子中选择bean1,以及在Property方框中填入“property1”。 IBM Java Server Pages插件就自动产生以下的语句:

<jsp:setProperty name="bean1" property="property1" value="" />

<jsp:setProperty>元素使用Bean给定的setter方法,在Bean中设置一个或多个属性值。你在使用这个元素之前必须得使用<jsp:useBean>声明此Bean.因为,<jsp:useBean>和<jsp:setProperty>是联系在一起的,同时这他们使用的Bean实例的名字也应当相匹配(就是说,在<jsp:setProperty>中的name的值应当和<jsp:useBean>中id的值相同) ,在前面我们已经在<jsp:useBean>声明了Bean为bean1。

你能使用多种方法利用<jsp:setProperty>来设定属性值:通过用户输入的所有值(被做为参数储存中request对象中)来匹配Bean中的属性;也可以通过用户输入的指定的值来匹配Bean中指定的属性;还可以在运行时使用一个表达式来匹配Bean的属性。

属性及其用法

name="bean1",表示已经在<jsp:useBean>中创建的Bean实例的名字.

property="*",储存用户在Jsp输入的所有值,用于匹配Bean中的属性。在Bean中的属性的名字必须和request对象中的参数名一致.。

从客户传到服器上的参数值一般都是字符类型 ,这些字符串为了能够在Bean中匹配就必须转换成其它的类型,下面的表中列出了Bean属性的类型以及他们的转换方法.

把字符串转化为其它类型的方法

boolean or Boolean

java.lang.Boolean.valueOf(String)

byte or Byte

java.lang.Byte.valueOf(String)

char or Character

java.lang.Character.valueOf(String)

double or Double

java.lang.Double.valueOf(String)

integer or Integer

java.lang.Integer.valueOf(String)

float or Float

java.lang.Float.valueOf(String)

long or Long

java.lang.Long.valueOf(String)

如果request对象的参数值中有空值,那么对应的Bean属性将不会设定任何值。同样的,如果Bean中有一个属性没有与之对应的Request参数值,那么这个属性同样也不会设定。

property="propertyName" [ param="parameterName" ],使用request中的一个参数值来指定Bean中的一个属性值。在这个语法中,property指定Bean的属性名,param指定request中的参数名.

如果bean属性和request参数的名字不同,那么你就必须得指定property和param ,如果他们同名,那么你就只需要指明property就行了.

如查参数值为空(或未初始化),对应的Bean属性不被设定.

property="propertyName" value="{string | <%= expression %>}"

使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果这个字符串,那么它就会被转换成Bean属性的类型(查看上面的表).如果它是一个表达式,那么它类型就必须和它将要设定的属性值的类型一致。

如果参数值为空,那么对应的属性值也不会被设定。另外,你不能在一个<jsp:setProperty>中同时使用param和value。

这里值得指出的一个技巧是如果你使用了property="*",那么Bean的属性没有必要按Html表单中的顺序排序。

||||||⑹jsp:getProperty, 获取Bean的属性值,用于显示在页面中。< jsp:getProperty> 中的 name 属性即为 < jsp:useBean> 中定义的 Bean 的 id ,它的 property 属性指定的是目标属性的名字。

在面板上点击jsp:setProperty图标,如图12所示。

当点击jsp:setProperty图标以后,出现以下对话框,如图13所示:

如图13上,可以在Bean Id方框上选择已经在<jsp:useBean>中创建的Bean实例的名字,在这个例子中选择bean1,以及在Property方框中填入“Property1”。 IBM Java Server Pages插件就自动产生以下的语句:

<jsp:getProperty name="bean1" property="property1" />

这个<jsp:getProperty>元素将获得Bean(在本例子中是bean1)的属性值,并可以将其使用或显示在JSP页面中.在你使用<jsp:getProperty>之前,你必须用<jsp:useBean>创建它.

当然,<jsp:getProperty>元素有一些限制: 你不能使用<jsp:getProperty>来检索一个已经被索引了的属性;你能够和JavaBeans组件一起使用<jsp:getProperty>,但是不能与Enterprise Bean一起使用。

这个<jsp:getProperty>属性name="bean1",bean的名字,由<jsp:useBean>指定。而property="propertyName",这里使用“Property1”,它是所指定的Bean的属性名。

⑺Comment,可以是在客户端显示一个注释,或者是写在JSP程序中,但不是发给客户。

在面板上点击Comment图标,如图14所示。

当点击Comment图标以后,出现以下对话框,如图15所示:

如图15上,你可以选择是让注释在客户端显示一个注释,或者是写在JSP程序中,但不是发给客户(或者称为隐藏起来)。

如果你选择“Yes”, IBM Java Server Pages插件就自动产生以下的JSP语句:

<!-- -->

你可以在上面再增加注释,例如<!-显示在客户端的注释 -->,这种注释和HTML中很像,也就是它可以在"查看源代码"中看到。唯一有些不同的就是,你可以在这个注释中用表达式.这个表达示是不定的,由页面不同而不同,你能够使用各种表达式,只要是合法的就行。例如<!-今天是<%= (new java.util.Date()).toLocaleString() %> --> ,结果在客户端显示:<!-今天是January 1, 2000 -->。

如果你选择“No”, IBM Java Server Pages插件就自动产生以下的语句:

<%-- --%>

用隐藏注释标记的字符会在JSP编译时被忽略掉。这个注释在你希望隐藏或注释你的JSP程序时是很有用的。JSP编译器不是会对<%--and--%>之间的语句进行编译的,它不会显示在客户的浏览器中,也不会在源代码中看到。

||||||⑻Expression, 包含一个符合JSP语法的表达式。

在面板上点击Expression图标,如图16所示。

当点击Expression图标以后,出现以下对话框,如图17所示:

如图17上,你可以在Expression方框中填写如表达式,如map.size()等等,那么IBM Java Server Pages插件就自动产生以下的JSP语句:

<%= map.size() %>

当然你也可以不必自己输入表达式,还可以在图17上选择系统给出的表达式,其中可选的有:date,request.getParameter(""),request.getRequestURI(),session.getValue("")和out.print()五种。分别选择这五种时,可以产生以下的JSP语句:

<%= new java.util.Date()).toLocaleString() %>

<%= request.getParameter("") %>

<%= request.getRequestURI() %>

<%= session.getValue("") %>

<%= out.print() %>

表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后被自动转化为字符串,然后插入到这个表达示在JSP文件的位置显示。因为这个表达式的值已经被转化为字符串,所以你能在一行文本中插入这个表达式(形式和ASP完全一样).

当你在JSP中使用表达式时请记住以下几点:

你不能用一个分号(";")来作为表达式的结束符.但是同样的表达式用在scriptlet中就需要以分号来结尾了。

这个表达式元素能够包括任何在Java Language Specification中有效的表达式.

有时候表达式也能做为其它JSP元素的属性值.一个表达式能够变得很复杂,它可能由一个或多个表达式组成,这些表达式的顺序是从左到右。

⑼Scriptlet, 包含一个有效的程序段。

在面板上点击Scriptlet图标,如图所示

当点击Scriptlet图标以后,出现以下对话框,如图19所示:

(图19)

如图19上,你可以选择“common scriptlets”并且在scriptlet写上多个JSP语句、方法、变量或者表达式。比如,在其上写上:

<%= session.getValue("") %><%= out.print() %>

<jsp:useBean id="bean1" scope="page" class="Bean1">

</jsp:useBean>

<jsp:setProperty name="bean1" property="property1" value="" />

<jsp:getProperty name="bean1" property="property1" />

<!--你好! -->

则IBM Java Server Pages插件就自动产生以下的JSP语句:

<%

<%= session.getValue("") %><%= out.print() %>

<jsp:useBean id="bean1" scope="page" class="Bean1">

</jsp:useBean>

<jsp:setProperty name="bean1" property="property1" value="" />

<jsp:getProperty name="bean1" property="property1" />

<!--你好! --> %>

当然你也可以不必手工填写JSP语句、方法、变量或者表达式。还可以在图19上选择系统给出的JSP语句、方法、变量或者表达式,其中可选的有:no cache,print,put session value,remove session value,setRequest, sendRedirect六种。分别选择这六种时,可以产生以下的JSP语句:

<%

response.setHeader("Cache-Control", "no-Cache");response.setHeader("Pragma", "No-cache");response.setDateHeader("Expires", 0);

%>

<%

out.println();

%>

<%

session.putValue("");

%>

<%

session.removeValue("");

%>

<%

bean1.setRequest(request);

%>

<%

response.sendRedirect("");

%>

作个总结吧,使用scriptlet,我们可以做以下的事:

声明将要用到的变量或方法(参考 声明).

编写JSP表达式(参考 表达式).

使用任何隐含的对象和任何用<jsp:useBean>声明过的对象

编写JSP语句 (如果你在使用Java语言,这些语句必须遵从Java Language Specification,).

任何文本,HTML标记,JSP元素必须在scriptlet之外

当JSP收到客户的请求时,scriptlet就会被执行,如果scriptlet有显示的内容,这些显示的内容就被存在out对象中。

||||||⑽tsx:dbconnect, 执行数据库连接。

在面板上点击tsx:dbconnect图标,如图所示

当点击tsx:dbconnect图标以后,出现以下对话框,如图21所示:

(图21)

如图21上,你可以指定数据库的位置(URL)以及其驱动程序类(Driver Class),需要的话还可以使用于验证身份的用户ID(UserId)及密码(Password).对话框中供选择的驱动程序类有:DB2 Local,DB2 Remote,AS/400 Toolbox for Java,JDBC-ODBC Bridge,Oracle,Sybase以及Lotus Domino.在本例中选Lotus Domino. IBM Java Server Pages插件就自动产生以下的JSP语句:

<tsx:dbconnect id="conn1" url="jdbc:db2:[people]" driver="lotus.jdbc.domino.DominoDriver userid="guest" passwd="guest" />

</tsx:dbconnect>

连接数据库以后,我们就可以对数据库进行一些操作,如执行SQL语句等等。

⑾tsx:dbmodify,选择数据库,并且执行SQL插入(Insert)、更新(Update)或者删除(Delete)语句。

在面板上点击tsx:dbmodify图标,如图22所示

当点击tsx:dbmodify图标以后,出现以下对话框,如图23所示:

(图23)

如图23上,首先选择要连接的数据库的ID,在本例中选择刚才创建的数据库的ID,即conn1.再执行两条SQL语句:

DROP TABLE table2(从数据库中彻底删除表table2)

ALTER TABLE table1 ADD EmailAdress INT NULL (在数据库的table1中增加新字段EmailAdress)

这样IBM Java Server Pages插件就自动产生以下的JSP语句:

<tsx:dbmodify id="modify1" connection="conn1" >

ALTER TABLE table1 ADD mynewcolumn INT NULL

DROP TABLE table2

</tsx:dbmodify>

⑿tsx:dbquery,选择数据库,并且执行SQL选择(Select)语句。

在面板上点击tsx:dbquery图标,如图所示

当点击tsx:dbquery图标以后,出现以下对话框,如图25所示:

(图25)

如图25上,首先选择要连接的数据库的ID,在本例中选择刚才创建的数据库的ID,即conn1.再执行两条SQL语句:

SELECT phone FROM people WHERE au_name="Younger"(找出名为peoplede 表中包含所有为作者为Younger的相关数据)

对话框中还可以选择是否将结果显示在一张表中,并且可以指定行数。在本例子中选择该功能,并指定行数为100.

这样IBM Java Server Pages插件就自动产生以下的JSP语句:

<tsx:dbquery id="query1" connection="conn1" limit="100">

SELECT phone FRO

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有