1. HTML 元素标签
和基本的html元素对应
<html:html>
属性: lang :用于设置用户使用的语言,当其为true时,将先根据存储在当前httpSession中的Locale对象来输出使用的语言,如不存在httpSession或者httpSession没有Locale对象,将根据客户浏览器提交的http请求头的Accept-Language属性输出语言,如果该属性也不存在,将使用默认的Locale输出。 如果客户浏览器使用中文,以下 <html:html lang=”true’ > 注意:早期版本使用 locale="true" 将被解析为 <html lang="zh-CN">
<html:base> 生成html <base>元素,用来生成当前网页的绝对URL路径,如果使用了这个标签,当该网页引用同一应用的其他网页的时候,只需要给出 相对URL即可。 <head> <html:base/> </head> 将转化为: <base href=”http://localhost:8080/htmlItaglibs/htmlBasic.jsp”>
<html:link>于创建连接,与html中的<a>对应 特点有二:一是可以用多种方式包含请求参数,二是如果浏览器关闭cookie,URL将被重写,sessionIDJI将自动作为请求参数包含 在url中,可以用来跟踪用户的session状态 <html:rewrite>用于输出连接中的URI部分,指的是URL中协议,主机和端口号后面的内容,如URL:http://localhost:8080/ html.do URI:/html.do 属性: forward:指定全局转发,取值为structs配置文件中<global-forwards>中的<forward>子元素注意,不能为action中的 <forward>子元素 href: 指定完整的URL page: 指定相对路径,以“/”开头 action 指定一个Action的名称。 请求参数: 1.在路径后面可以直接带有请求参数,如: <html:link page=”/html.do?prop1=abc&prop2=123”>
2. (单参数单值)如果请求参数要用到变量,可以使用以下属性:paramId指定请求参数名,用paramName和paramProperty指定该参数的值, paramName和paramProperty和一般的name和Property意义一样。
如:页面中存在一个javabean 名为cusbean,含有属性 name, 值为zwp 以下
<html:link page=”/basic.do” paramid=”urlParaName” paramName=“cusbean” paraProperty=”name”>
将解析为<a href=” /basic.do? urlParaName=zwp”><a/>
3,如果有多个参数(多参单值,多参多值,单参多值,混合),需要先定义成Map类型变量,然后用name和porperty属性引用.可以实现多值参数
<% java.util.hashMap myMap=new java.util.hashMa();
myMap.put(“myString”,new String(“value”));
myMap.put(“myString”,new String(“str1”,”str2”,”str3”));
pageContext.setAttribute(“map”,myMap); %>
<html:link page=”/basic.do” name=”map”>
例子:
<logic:iterate id="person" name="dataForm" property="persons">
<html:link action="/link.do" paramId="person" paramName="person"
paramProperty="id" indexed="true" indexId="number">
person
</html:link>
<br/>
</logic:iterate>
下面是上面代码的运行结果(产生的html)
<a href="/struts-demo/link.do?person=00001&number=0">赵辰</a><br/>
<a href="/struts-demo/link.do?person=00002&number=1">李为芳</a><br/>
<a href="/struts-demo/link.do?person=00003&number=2">王微</a><br/>
其中的number是由indexId="number"确定的,而该参数的值为元素在集合中的位置。
<html:img>
用于嵌入图片,与html中img对应。
属性:
page: 指定相对URI,以“/”开头
src: 指定完整的URI
height:图象的高度。
width:图象的宽度。
alt:如果找不到图象,显示的文本。
单请求参数和多请求参数均与<html:link>一样
2 HTML 表单标签
<html:form>用于创建表单,方法为post, action属性指明其处理组件。在提交后,structs框架将自动将其内容组合成ActionForm对象,提交给该组件。
<html:form action=”FormBasicForm”> 将被解释为
<form name=” FormBasicForm” method=”Post” action=”/htmltaglibs/FormBasic.do”>
属性: methed:缺省为post. Enctype:上传文件需要是"multipart/form-data" Focus:会自动“定焦”(focus)所包含的一个元素上。 如<html:form action=\"/login\" focus=\"password\">
实际上将会产生一段Javascript
<script language="Javascript" type="text/javascript">
if (document.forms["loginForm"].elements["password"].type != "hidden")
document.forms["loginForm"].elements["password"].focus()
</script>
<html:text> 文本框。property指名其代表的属性名,需要与 ActionForm对象的一个属性对应。
其他属性包括size , maxlength
<html:password >密码框 属性: redisplay:用于重新显示以前输入到这个区域中的值。该属性的缺省值为true。然而,为了使password不能被重新显示,你或许希望将该属性的值设为false。 例如: <html:password property="password" redisplay="false"/> 会被转换成: <input type="password" name="password" value="">
<html:textarea>
用于生成一个文本区域。
比如: <html:textarea property="details" cols="80" rows="20"
value="Enter details here"/>
<html:hidden> 隐藏字段。有两种方式,第二种可以把内容显示出来,这种可用于只读显示
1)<html:hidden property=”hiddenValue”>生成
<input type=”hidden” name=”hiddenValue” value=”propValue”>
2) <html:hidden property=”hiddenValue” write=”true”>生成
<input type=”hidden”name=”hiddenValue” value=”propValue”> propValue
属性:
value: 字段的实际值
<html:checkbox> 检查框
<html:checkbox property=”checkbox1” value=”true’ >
property对应的actionForm中属性必须为boolean类型。当value为true时候,选中的时候值为true, 当value为false时候,选中的时候值为false. property
注意必须在ActionForm中的reset()方法将其复位,否则其后无法使用
<html:multibox>复选按钮组。使用方法为
< html:multibox property=”strArray” value=”Value1”>或者
< html:multibox property=”strArray”> Value2< /html:multibox>
Value1和Value2 是显示出来的字。也是其返回的内容,如果其对应的actionForm中strArray是一个字符数组,当以上两个都被选中的时候,值为{“Value1”, “Value2”},如果某个未被选中,数组中就不包括这个值。
注意必须在ActionForm中的reset()方法将其复位(如将数组程度设置成0),否则其后无法使用