(一)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>
<bean:define id="fullname" name="person" propery="fullname"/> <html:button property="page1.next" value="<%=fullname%>" />
<html:html>
用於產生HTML <html>標籤,如果locale屬性設定為true,而session中有Locale物件的話,則會寫出其區域訊息。
使用範例:
....
</html:html>
<html:base>
產生一個HTML <base>標籤,根據所在頁面的URL為基底,當頁面中有相對的URL指定時,是以<base>標籤為參考,這個標籤必須位於 <head>與</head>之間,例如:
<html>
<head>
<html:base/>
</head>
.....
</html>
<html:link>
設定超連結,常用屬性如下:
- href: 絕對超連結URL
- forward: 指定forward的目標
- page: 使用相對於Context的路徑來指定連結
- anchor: 書籤錨點,例如#abc,不過使用這個標籤時不用加#
使用範例:
<html:img>
顯示圖片,常用屬性如下:
- src: 圖片URL
- page: 圖片相對於Context的路徑
- alt: 替代文字
- align: 文繞圖設定
- border: 框線寬度
- height: 圖片高度
- width: 圖片寬度
- hspace: 圖片與文字的橫向間距
- vspace: 圖片與文字的垂直間距
使用範例:
<html:button>
產生HTML按鈕,常用屬性介紹如下:
- property: 元素名稱
- value: 按鈕顯示名稱
- title: 按鈕提示文字
- onclick: 按下後呼叫的JavaScript程式
使用例子如下:
οnclick="alert('Hello!World!')" title="Hello!World!"/>
<html:cancel>
其實就是submit按鈕,用法與 <html:submit> 類似,不過按下它後,不會執行 ActionForm 的validate()方法。
<html:hidden/>
表單的中隱藏欄位,搭配 <html:form> 使用,使用範例如下:
<html:hidden property="hid" value="1234"/>
....
<html:submit/> <html:reset/>
</html:form>
<html:textarea>
表單文字區域,搭配<html:form>使用,常用屬性如下:
- property: 元素名稱
- cols: 橫向字數
- rows: 縱向行數
- value: 顯示的初始文字
使用範例:
value="在此留言" cols="50" rows="5"/>
<html:file>
顯示一個上傳檔案的欄位,搭配<html:form>使用,例如我們可以將 檔案上傳 中的靜態表單改為JSP動態表單,並使用<html:file>:
enctype="multipart/form-data"
method="post" action="/strutsapp/upload.do">
<html:file property="file"/><br>
<html:submit value="上傳"/>
</html:form>
<html:radio>
顯示單選鈕,搭配<html:form>使用,使用範例如下:
<html:radio property="sex" value="woman"/>女
<html:checkbox>
顯示核取方塊,搭配<html:form>使用,使用範例如下:
value="Java">Java</html:checkbox>
<html:checkbox property="lang[1]"
value="C#">C#</html:checkbox>
<html:multibox>
建立核取方塊的另一個方法:
value="Java">Java</html:multibox>
<html:multibox property="lang"
value="C#">C#</html:multibox>
<html:select>、<html:option>
建立下拉選單,搭配<html:form>使用,使用範例如下:
<html:option value="Java">Java</html:option>
<html:option value="C#">C#</html:option>
</html:select>
<html:image>
建立圖片按鈕,常用屬性如下:
- property: 元素名稱
- src: 圖片URL
- value: 按下圖片時送出的值
- border: 框線寬度
- onclick: 按下時圖片時呼叫的JavaScript
使用範例:
οnclick="alter("send")"/>