设为首页
加入收藏
站内地图
旧版入口

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

作者:佚名 出处:网络转载 时间:07-26 点击:

内容载入中...

  ⑸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

M people WHERE au_name="Younger"
</tsx:dbquery>
<table>
<tsx:repeat>
<tr>
<td><tsx:getProperty name="query1" property="" /></td>
</tr>
</tsx:repeat>
</table>

||||||  ⒀tsx:setProperty,设置Bean中的属性值

  <tsx:getProperty> 中的 name 属性即为<tsx:dbmodify> 中定义的id ,它的 property 属性指定的是目标属性的名字。
  在面板上点击tsx:setProperty图标,如图所示

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

  
   (图27)

  如图27上,可以在Database Bean方框上选择已经在<tsx:dbmodify>中创建的名字,在这个例子中选择modify1,以及在Property方框中填入“Property1”。 IBM Java Server Pages插件就自动产生以下的语句:
<tsx:setProperty name="modify1" property="column1" value="" />

  ⒁tsx:getProperty,获取Bean的属性值,用于显示在页面中。
  在面板上点击tsx:getProperty图标,如图所示

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

  
   (图29)

  如图29上,可以在Database Bean方框上选择已经在<tsx:dbmodify>中创建的名字,在这个例子中选择modify1,再选择数据库的一列,在本例子中选择“phone”。 IBM Java Server Pages插件就自动产生以下的语句:

<tsx:getProperty name="modify1" property="phone" />

  ⒂tsx:repeat,在一个循环种显示数据。

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

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

  
   (图31)

  如图31上,在Index Variable(索引变量)的方框中写如变量,在本例中用“i”,再设置初始值和终止值,在这里分别为1和100.点击OK键,IBM Java Server Pages插件就自动产生以下的语句:

<tsx:repeat index="i" start="1" end="100">
</tsx:repeat>
实际上我们刚才在创建行数为100的表的时候已经用到< tsx:repeat >,例如:
<tsx:dbquery id="query2" connection="conn1" limit="100">
</tsx:dbquery>
<table>
<tsx:repeat>
<tr>
<td><tsx:getProperty name="query2" property="" /></td>
</tr>
</tsx:repeat>
</table>


  好了,至此IBM Java Server Pages插件就介绍完毕,可能你会觉得这节教程太“冗长”了,是有点长,不过你用起来一定会觉得编程效率更高,更容易使用,因为你可以在Dreamweaver中创建动态网站。

收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口
推荐信息