(一)Struts HTML标签简介:<html:html> 渲染HTML<html>元素
eg: <html:html locale="true"> 该页面将根据客户端浏览器提交的Accept-Language头部,来设置它的locale值.
<html:base> 渲染HTML<base>元素 <base>这个HTML元素可用来帮助浏览器正确的组成路径. 在本例中,我们的<html:base />标记输出如下的HTML: <base href="http://localhost:8080/StrutsTaglibs/HtmlBasec.jsp">eg:
<head><html:base /></head>
<html:link> 渲染HTML锚点标记<a>元素
eg:
<html:link forward="index"> Link to Global ActionForward </html:link>
<html:link href="http://www.126.com"> Link to you Email Address. </html:link>
<html:link page="/lh/supervise/aj/risk/QueryAction.TJ"> A relative link from this page </html:link>
<html:rewrite> 仅渲染<html:link>标记中的URI部分
<html:link page="/HtmlBasec.do?prop1=abc&prop2=123"> Hard-code the url parameters
</html:link>
<html:rewrite page="/htmlBasic.do?prop1=abc&prop2=123"> <html:img> 渲染HTML<img>元素
eg:
<html:img page="/struts-power.gif" />
<html:img src="/StrutsTaglibs/struts-power.gif" paramId="urlParamName" paramName="pageAttribute1" /> <html:img page="/struts-power.gif" name="map" />
<html:form> 渲染HTML<form>元素eg: <html:form action="/lh/supervise/aj/risk/QueryAction.TJ">产生的HTML<form>标记为: <form: name="FormBasicsForm" method="POST" action="/lh/supervise/aj/risk/QueryAction.TJ">
<html:text> 在表单中放置文本框.eg: <html:text property="propertyname" disabled="true" />
<html:hidden> 在表单中放置隐藏类型的INPUT元素.eg: <html:hidden property="secendid" write="true" />
<html:submit> 在表单中放置提交的INPUT元素.eg: <html:submit> Submit</html:submit> 产生的HTML<form>标记为:
<input type="submit" name="submit" value="Submit">
<html:cacel> 在表单中放置取消的INPUT元素.eg: <html:cancel>Cancel</html:cancel> 产生的HTML<form>标记为:
<input type="submit" name="org.apache.struts.taglib.html.cancel" value="Cancel">
<html:reset> 在表单中放置复位的INPUT元素.eg: <html:reset>Reset</html:reset> 产生的HTML<form>标记为: <input type="reset" name="reset" value="Reset">
<html:chechbox> --在表单中防止复选框.<html:multibox>--在表单中放置复选框.<html:radio>--在表单中放置单选按钮.
eg: <table> <tr> <td align="left"> Checkbox 1:<html:checkbox property="checkbox1"/> </td> <td> Checkbox 2:<html:checkbox property="checkbox2"/> </td>
</tr>
<tr> <td align="left"> MultiBox1:<html:multibox property="strArray" value="Value1" /> </td>
<td align="left"> MultiBox2:<html:multibox property="strArray"> value2</html:multibox> </td>
</tr>
<tr> <td align="left"> <html:radio property="radioVal" value="V1">Radio Button 1 </td> <td align="left"> <html:radio property="radioVal" value="V2">Radio Button 2 </td>
</tr>
<tr> <td> </td> <td> </td>
</tr> </table>为了使用这三类控件我们在JSP表单BEAN中如下定义:eg:public class CheckboxRadioForm extends ActionForm{public CheckboxRadioForm(){}
private boolean checkbox1; public boolean getCheckbox1(){return this.checkbox1;} public void setCheckbox1(boolean checkbox1){this.checkbox1=checkbox1;}
private boolean checkbox2; public boolean getCheckbox2(){return this.checkbox2;} public void setCheckbox2(boolean checkbox2){this.checkbox2=checkbox2;}
private String strArray[]=new String[0]; public String[] getStrArray(){return (this.strArray);} public void setStrArrray(String strArray[]){this.strArray=strArray;}
private String radioVal=""; public String getRadioVal(){return (this.radioval);} public void setRadioVal(String radioVal{this.radioVal=radioVal;}) public void reset(ActionMapping mapping,HttpServletRequest request) { this.setCheckbox1(false); this.strArray=new String[0]; this.radioVal=""; }}
</html:chechbox> --在表单中防止复选框.</html:multibox>--在表单中放置复选框.</html:radio>--在表单中放置单选按钮.
下拉和选取/选项列表 <html:select> --渲染HTML<select>下拉或多选元素eg:
<html:select property="a_custID"> <html:optionsCollection property="customers" label="name" value="custId" /> </html:select>
<html:select property="colors" size="6" multiple="true"> <html:option value="orange">Orange</html:option> <html:option value="ch12.purple" value="Purple" /> <html:option value="ch12.red" bundle="ch12.Colors" key="ch12.red" /> <html:option value="ch12.blue" bundle="ch12.Colors" key="ch12.blue" />
<html:options collection="colorCollection" property="value" labelProperty="labe1" /> </html:select><html:option> --在<select>元素内部定义单独的<option>元素<html:options> --在<select>元素内部定义一个或多个的<option>元素<html:optionsCollection> --基于collection在<select>元素内定义一个或者多个<option>元素.
<html:select property="custId">property 属性定义了该元素所连接的表单BEAN属性.当页面被显示时,该属性值将变为初始值并显示为选定状态.
<html:option>标记的显示值来自下面的两个部分:1,在<html:option>和</html:option>标记之间的值.2,在属性文件(资源包)中的值,由key,locale和<html:option>标记的bundle属性指定.eg: <html:option value="ch12.orange">Orange</html:option> <html:option value="ch12.red" bundle="ch12.Colors" key="ch12.red" />
<html:options>
<html:options collection="coll" property="value" labelProperty="label" />:一个名为values的表单Bean保存了这些选项值的集合对象.一个名为labels的表单Bean属性保存了显示给用户的选项标记的集合.
<html:options name=" valuBeanname " property="values" labelNmae="labelsBean" labelProperty="labels" />:值是保存在一个名为valuBeanname 的Bean中叫做values的属性中.
<html:select property="custId"> <html:optionsCollection property="customers" label="name" value="custId" /></html:select>
<html:errors>
<td><html:checkbox property="checkbox1" /></td><td><html:errors property="checkbox1" bundle="ch12.HtmlErrors" /></td>
172.19.10.2:6888...................................................................................................................... Struts Bean 标记:保存与传输数据
<bean:define >--基于属性定义局部变量<bean:write >--显示Bean中的值.<bean:size >--得到映射或集合的大小.//Struts:logic 标记.<logic:equal><logic:greaterEqual><logic:greaterThan><logic:lessEqual><logic:notEqual><logic:match><logic:notMatch><logic:iterate><logic:empty><logic:messagesPresent><logic:notPresent><logic:present>
The value can be any "RT Expression" you can do the following <bean:define id="fullname" name="person" propery="fullname"/> <html:button property="page1.next" value="<%=fullname%>" />
用於產生HTML <html>標籤,如果locale屬性設定為true,而session中有Locale物件的話,則會寫出其區域訊息。使用範例:
<html:html locale="true"> .... </html:html>產生一個HTML <base>標籤,根據所在頁面的URL為基底,當頁面中有相對的URL指定時,是以<base>標籤為參考,這個標籤必須位於 <head>與</head>之間,例如:
.... <html> <head> <html:base/> </head> ..... </html>設定超連結,常用屬性如下:
href: 絕對超連結URL forward: 指定forward的目標 page: 使用相對於Context的路徑來指定連結 anchor: 書籤錨點,例如#abc,不過使用這個標籤時不用加#使用範例:
<html:link href="http://www.caterpillar.onlyfun.net/"/>顯示圖片,常用屬性如下:
src: 圖片URL page: 圖片相對於Context的路徑 alt: 替代文字 align: 文繞圖設定 border: 框線寬度 height: 圖片高度 width: 圖片寬度 hspace: 圖片與文字的橫向間距 vspace: 圖片與文字的垂直間距使用範例:
<html:img page="/images/wiki.jpg" alt="caterpillar"/>產生HTML按鈕,常用屬性介紹如下:
property: 元素名稱 value: 按鈕顯示名稱 title: 按鈕提示文字 onclick: 按下後呼叫的JavaScript程式使用例子如下:
<html:button property="button1" value="按我" οnclick="alert('Hello!World!')" title="Hello!World!"/>其實就是submit按鈕,用法與 <html:submit> 類似,不過按下它後,不會執行 ActionForm 的validate()方法。
表單的中隱藏欄位,搭配 <html:form> 使用,使用範例如下:
<html:form action="/login" focus="name"> <html:hidden property="hid" value="1234"/> .... <html:submit/> <html:reset/> </html:form>表單文字區域,搭配<html:form>使用,常用屬性如下:
property: 元素名稱 cols: 橫向字數 rows: 縱向行數 value: 顯示的初始文字使用範例:
<html:textarea property="message" value="在此留言" cols="50" rows="5"/>顯示一個上傳檔案的欄位,搭配<html:form>使用,例如我們可以將 檔案上傳 中的靜態表單改為JSP動態表單,並使用<html:file>:
<html:form name="uploadForm" enctype="multipart/form-data" method="post" action="/strutsapp/upload.do"> <html:file property="file"/><br> <html:submit value="上傳"/> </html:form>顯示單選鈕,搭配<html:form>使用,使用範例如下:
<html:radio property="sex" value="man"/>男 <html:radio property="sex" value="woman"/>女顯示核取方塊,搭配<html:form>使用,使用範例如下:
<html:checkbox property="lang[0]" value="Java">Java</html:checkbox> <html:checkbox property="lang[1]" value="C#">C#</html:checkbox>建立核取方塊的另一個方法:
<html:multibox property="lang" value="Java">Java</html:multibox> <html:multibox property="lang" value="C#">C#</html:multibox>建立下拉選單,搭配<html:form>使用,使用範例如下:
<html:select property="lang" value="Java"> <html:option value="Java">Java</html:option> <html:option value="C#">C#</html:option> </html:select>建立圖片按鈕,常用屬性如下:
property: 元素名稱 src: 圖片URL value: 按下圖片時送出的值 border: 框線寬度 onclick: 按下時圖片時呼叫的JavaScript使用範例:
<html:image property="push" src="push.jpg" οnclick="alter("send")"/>