Struts HTML 标签库

转载:http://blog.163.com/likai_0223/blog/static/142347258201062021222938/


Struts HTML标签库中的许多标签都和基本的HTML元素对应:
<html:html>:生成HTML<html>元素。
<html:base>:生成HTML<base>元素。
<html:link>:生成HTML Anchor<a>元素。
<html:rewrite>:生成用户请求的URI。
<html:img>:生成HTML<img>元素。
 
<html:html>标签
<html:html>标签用于在网页的开头生成HTML的<html>元素。<html:html>标签有一个lang属性,用于显示用户使用的语言:
       <html:html lang=”true”>
如果客户浏览器使用中文语言,那么以上代码在运行时将被解析为普通的HTML代码:
       <html lang=”zh-CN”>
当lang属性为“true”时,<html:html>标签将先根据存储在当前HttpSession中的Locale对象来输出网页使用的语言,如果不存在HttpSession,或者HttpSession中没有Locale对象,就根据客户浏览器提交的HTTP请求头中的Accept-Language属性来输出语言,如果HTTP请求头中没有Accept-Language属性,就根据默认的Locale来输出语言。
 
<html:base>标签
<html:base>标签在网页的<head>部分生成HTML<base>元素。HTML<base>元素用于生成当前网页的绝对URL路径。
如果在网页中使用了<html:base>标签,当该网页引用同一个应用的其他网页时,只需给出相对于当前网页的相对URL路径即可。
 
<html:link>和<html:rewrite>标签
<html:link>标签用于生成HTML<a>元素。<html:link>在创建超链接时,有两个优点:
1.  允许在URL中以多种方式包含请求参数。
2.  当用户浏览器关闭Cookie时,会自动重写URL,把SessionID作为请求参数包含在URL中,用于跟踪用户的Session状态。
<html:link>标签有以下重要属性:
1.  forward:指定全局转发链接。
2.  href:指定完整的URL链接。
3.  page:指定相对于当前网页的URL。
<html:rewrite>用于输出超链接中的URI部分,但它并不生成HTML<a>元素。URI指的是URL中协议、主机和端口以后的内容。URI用于指定具体的请求资源。
在URL或URI中包含请求变量
<html:link>标签的paramId属性指定请求参数名,paramName属性指定变量的名字。如果变量为JavaBean,用paramProperty属性指定JavaBean的属性。
<html:link>标签的name属性指定包含请求变量的HashMap对象。HashMap对象中的每一对“key/value”代表一对或多对“请求参数名/请求参数值”。
 
<html:img>标签
<html:img>标签用于在HTML页中嵌入图片。此外,它还允许包含请求变量,以便动态控制图片的输出。
<html:img>标签的page属性指定相对于当前页面的URI。
<html:img>标签的src属性指定完整的URI。paramId指定参数名,paramName属性指定提供参数值的请求变量。
<html:img>标签的name属性指定一个HashMap对象。
 
 
 
Struts HTML标签库提供了一组生成HTML表单的标签:
<html:form>:生成HTML<form>元素。
<html:text>:生成HTML<INPUT type=text>元素。
<html:hidden>:生成HTML<INPUT type=hidden>元素。
<html:submit>:生成HTML<INPUT type=submit>元素。
<html:cancel>:在表单上生成取消按钮。
<html:reset>:生成HTML<INPUT type=reset>元素。
 
<html:form>标签
处理HTML表单是Web应用的主要工作之一。在Struts应用中,使用<html:form>标签来创建表单。<html:form>标签的action属性用来指定用户提交表单后,处理用户请求的组件。
 
<html:text>标签
该标签在表单上创建HTML文本框字段。
<html:text>标签的property属性指定字段的名字,它和ActionForm Bean中的一个属性匹配。
 
<html:cancel>标签
<html:cancel>标签在表单中生成取消按钮。当用户按下取消按钮时,将产生一个取消事件,这个事件由Action类来捕获,至于如何处理这个事件,可以在Action类的execute()方法中编程来实现。
Action类的isCancelled(request)方法用来判断取消事件有没有发生。如果这个方法返回true,就表示取消事件发生了,可以在程序中进行相关的操作。
 
<html:reset>标签
<html:reset>标签生成表单的复位按钮。
 
<html:submit>标签
<html:submit>标签生成表单的提交按钮。
 
<html:hidden>标签
这个标签在表单上生成隐藏字段。隐藏字段用于在表单上存放不希望让用户看到或不允许修改的信息。如果write=”true”,那么页面上显示信息,但是不能修改。
 
 
 
Struts HTML标签库提供HTML表单上生成检查框和单选按钮的标签。这些标签必须嵌套在<html:form>标签中:
<html:checkbox>:生成HTML<INPUT type=checkbox>元素。
<html:multibox>:在表单上生成复选框元素。
<html:radio>:生成HTML<INPUT type=radio>元素。
 
<html:checkbox>标签
<html:checkbox>标签在表单上生成标准的HTML检查框。
<html:checkbox>有一个value属性,用来设置用户选中检查框时的值,value的默认值为true。
<html:checkbox property=”checkbox1” value=”true”>如果选择了这个检查框,就把form Bean中的checkbox1属性设置为true。
为了使检查框能正常工作,必须在ActionForm Bean的reset()方法中对其复位。当<html:checkbox>的value属性为true时,必须在reset()方法中把对应的属性设置为false。当<html:checkbox>的value属性为false时,必须在reset()方法中把对应的属性设置为true。
 
<html:multibox>标签
<html:multibox>标签和<html:checkbox>一样,可以提供HTML<input type=”checkbox”>元素。区别在于<html:multibox>标签可以生成复选框,它和ActionForm Bean的关联方式不一样。
首先,在ActionForm Bean中定义一个数组,来存放所有CheckBox的值
其次,在表单中加入<html:multibox>元素,通过设置property=”strArray”来把它和ActionForm Bean中的数组关联。
再次,对于每个<html:multibox>元素,设置它的初始值。
 
<html:radio>标签
<html:radio>标签提供HTML<input type=”radio”>元素,表示单选按钮。多个<html:radio>标签可以成组使用。
<html:radio property=”radioVal” value=”Value1” />
<html:radio property=”radioVal” value=”Value2” />
以上标签的property属性相同,而仅仅是value不同,它们都和form Bean中的radioVal属性对应。
由于以上两个<input>元素使用同一个name属性,因此在同一时刻,只允许用户选择一个按钮。假定用户选择了第一个value值为“Value1”的按钮,然后提交表单,CheckBoxForm Bean 中的radioVal属性将被设为“Value1”。如果两个按钮都没选中,CheckBoxForm Bean中的radioVal属性将被设为空字符串“”。
 
 
 
Struts HTML标签库提供HTML表单上生成下拉列表(只支持单项选择)或多选列表(支持多项选择)的标签。这些标签必须嵌套在<html:form>标签中:
<html:select>:生成HTML<select>元素。
<html:option>:生成HTML<option>元素。
<html:options>:生成一组HTML<option>元素。
<html:optionsCollection>:生成一组HTML<option>元素。
 
<html:select>标签
<html:select>标签生成HTML<select>元素。它可以在表单上创建下拉列表或多选列表。在<html:select>标签中可以包含多个<html:option>,<html:options>和<html:optionCollection>标签。
<html:select>标签有以下重要属性:
1.  size属性:指定每次在网页上显示的可选项的数目。
2.  multiple属性:指定是否支持多项选择,如果设置为true,就表示多选列表,支持多项选择;否则表示下拉列表,只支持单项选择。默认值为false。
3.  Property属性:与ActionForm Bean中的某个属性对应,这个属性用来存放用户在列表上选中选项的值。在单项选择的情况下ActionForm Bean中的对应属性应该定义为简单类型(不能为数组)。在多项选择的情况下,ActionForm Bean中的对应属性应该定义为数组类型,以便存放用户选择的多个选项。
 
<html:option>标签
<html:option>标签生成HTML<option>元素。这个标签被嵌套在<html:select>标签中,代表列表的一个可选项。可选项的Label有两个来源:
1.  在<html:option>和</html:option>之间的文本内容。
2.  由<html:option>标签的key、locale和bundle属性指定的Resource Bundle中的内容。
<html:option>元素的value属性指定可选项的实际值。
 
<html:options>标签
<html:options>标签提供一组HTML<option>元素。在<html:select>元素中可以包含多个<html:options>元素。
<html:options>标签的collection属性指定存放可选项的集合,这个集合应该存在于page范围内。
每个LabelValueBean 实例代表了一个可选项,它有两个属性:label和value,分别代表可选项的显示值和实际值。
 
<html:optionsCollection>标签
<html:optionsCollection>标签提供一组HTML<option>元素。在<html:select>元素中可以包含多个<html:optionsCollection>元素。
<html:optionsCollection>的name属性指定包含可选项集合的JavaBean的名字。还可以使用property属性指定可选项集合。
label:指定集合中可选项的显示值。
value:指定集合中可选项的实际值。
 
 
 
<html:file>标签
<html:file>标签可以方便地实现文件上传的功能。
使用<html:file>标签需要注意以下几点:
1.<html:file>必须嵌套在<html:form>标签中。
2.<html:form>标签的method属性必须设为“POST“。
3.<html:form>标签的编码类型enctype属性必须设为“multipart/form-data“。
4.<html:file>标签必须设置porperty属性,这个属性和ActionForm Bean中FormFile类型的属性对应。
 
与JSP文件中的<html:file property=”file” />对应,在ActionForm Bean中必须定义一个名为“file“的属性。这个属性必须为org.apache.struts.upload.FormFile类型。
 
文件上传比传送HTTP表单的其他数据要复杂。幸运的是,Struts框架提供了这方面的功能。如果要处理实际的文件上传和保存操作,可以采用以下代码:
String dir = servlet.getServletContext().getRealPath("/upload");
HtmlFileForm hff = (HtmlFileForm)form;
 
//org.apache.struts.upload.FormFile contains the uploaded file
FormFile file = hff.getFile();
 
//If no file was uploaded(e.g.first form load),then display View
if(file == null){
       return mapping.findForward("success");
}
 
//Get the name and file size
String fname = file.getFileName();
String size = Integer.toString(file.getFileSize())+"bytes";
 
InputStream streamIn = file.getInputStream();
OutputStream streamOut = new FileOutputStream(dir+"/"+fname);
 
int bytesRead = 0;
byte[] buffer = new byte[8192];
while((bytesRead = streamIn.read(buffer,0,8192))!=-1){
       streamOut.write(buffer,0,bytesRead);
}
 
streamOut.close();
streamIn.close();
 
 
 
<html:errors>标签
<html:errors>标签用于输出错误消息。
<html:errors>标签可以放在网页的任何地方,既可以位于HTML表单内,也可以位于HTML表单外。<html:errors>标签输出的错误消息和它在网页中的位置无关。<html:errors>标签具有以下重要属性:
1.  name:指定ActionMessages对象存放在request或session范围内的属性key。标签处理类将根据这一属性key来检索request或session范围的ActionMessages对象。默认值为Globals。ERROR_KEY。
2.  propertity:指定消息属性。如果此项没有设置,将显示ActionMessages对象中所有的ActionMessage。
3.  bundle:指定Resource Bundle。如果此项没有设置,将从应用默认的Resource Bundle中获取消息文本。
 
<html:messages>标签
<html:messages>标签用于输出消息。
<html:messages>标签有以下一些重要属性:
1.  name:指定ActionMessages对象存放在request或session范围内的属性key。标签处理类将根据这一属性key来检索request或session范围的ActionMessages对象。
2.  message:指定消息的来源。如果为true,则从request或session范围内检索出属性key为Globals.MESSAGE_KEY的ActionMessages对象,此时name属性无效;如果为false,则根据name属性来检索ActionMessages对象,如果此时没有设置name属性,将采用默认值Globals.ERROR_KEY。Message属性的默认值为false。
3.  id:用来命名从消息集合中检索出的每个ActionMessage对象,它和<bean:write>标签的name属性匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值