Struts1 HTML标签

HTML标签库分类

1.用于生成基本的HTML的标签

<html:html>

用于在页面的开头生成HTML的<html>元素,该标签有一个属性lang来显示用户显示的语言。
例如: <html:html lang="true"/>
如果用户的浏览器使用中文,那么该代码在运行时被解析为
<html lang="zh-CN">

<html:base>

用于在页面的<head>部分生成<base>元素,用于生成当前页面的绝对URL路径。
例如: <html:base="http://localhost:8080/jsp"/>
那么使用该base的页面已经将URL定位到应用程序jsp的根目录下面,要从该页面再去访问其它资源,只要使用相对路径即可。

<html:link>

用于生成HTML的<a>元素,包括以下的属性:
forward: 指定全局的转发链接,对应于Struts配置文件中的<global-forwards>元素
href: 指定完整的URL链接
page: 指定相对于当前应用的URL
例如:
c1) <html:link forward="index">
Link to Global ActionForward
</html:link>
index对应于struts-config.xml中:
全局: <forward name="index" path="index.jsp">
上述标签会自动生成HTML代码:
<a href="/app/index.jsp">
Link to Global ActionForward
</a>
c2) <html:link href="http://localhost:8080/app/index.jsp">
Generate an "href" link
</html>
生成的HTML代码如下:
<a href="http://localhost:8080/app/index.jsp">
Generate an "href" link
</a>
c3) <html:link page="/login.do">
A relative link
</html:link>
生成的HTML代码如下:
<a href="/app/login.do">
Generate an "href" link
</a>
使用该标签的优点:
b1) 应许再URL中以多种方式包含请求参数
b2) 在当前浏览器关闭Cookie时,会自动重写URL,把jsessionid作为请求参数包含在URL中,用于跟踪用户的状态(除了href属性)。

<html:img>

用于在HTML中嵌入图片
例如:
d1) <html:img page="/girl.gif"/>
生成HTML代码如下:
<img src="/app/girl.gif"/>
d2) <html:img src="/app/girl.gif" paramId="orderid" paramName="3"/>
生成HTML代码如下:

<img src="/app/girl.gif?orderid=3"/>

2.用于生成HTML表单的标签

<html:form>

生成HTML<form>元素
例如: <html:form action="/login">
生成的HTML代码如下:
<form name="loginForm" method="POST" action="/app/login.do">
对应于struts-config.xml中部分代码:
<action path="/login"
type="com.briup.web.action.LoginAction"
name="loginForm"
scope="request"
input="/login.jsp"
validate="true">
<forward name="success" path="/member_activity.jsp"/>
</action>

<html:text>

生成HTML<input type="text">元素
例如: <html:text property="age"/>
property属性指定的字段和ActionForm中的属性匹配生成HTML代码如下:
<input type="text" name="age" value="ActionForm中属性age的值"/>

<html:hidden>

生成HTML<input type="hidden">元素
例如: <html:hidden property="age"/>
生成HTML代码如下:<input type="hidden" name="age" value="同上"/>

<html:submit>

生成HTML<input type="submit">元素
例如: <html:submit>提交</html:submit>
生成HTML代码如下:<input type="submit" name="submit" value="提交"/>

<html:cancel>

在表单上生成取消按钮
例如: <html:cancel>Cancel</html:cancel>
生成HTML代码如下:<input type="submit" name="org.apache.struts.taglib.html.CANCEL" value="Cancel"/>
注意: 在Action类中,应该以编程的方式来处理取消事件。

<html:reset>

生成HTML<input type="reset">元素
例如: <html:reset>重置</html:reset>
生成HTML代码如下:
<input type="reset" name="reset" value="重置"/>

<html:checkbox> 

生成HTML<input type="checkbox">元素

<html:multibox> 

在表单上生成复选框元素

<html:radio> 

生成HTML<input type="radio">元素

<html:select> 

生成HTML<select>元素

<html:option> 

生成HTML<option>元素

<html:options> 

生成一组HTML<option>元素

<html:optionsCollection> 

生成一组HTML<option>元素

<html:file> 

实现将本地文件上传到服务器端
<html:form action="sendFile.do" method="POST" enctype="multipart/form-data">
<html:file property="file"/>
</html:form>

使用注意: 
n1) <html:file>必须嵌套在<html:form>中
n2) <html:form>标签的method属性必须为"POST"
n3) <html:form>标签的编码类型enctype必须设置为"multipart/form-data"
n4) <html:file>标签必须设置property属性,这个属性和ActionForm中FormFile类型的属性对应。

在ActionForm中必须配置:
private FormFile file;
public FormFile getFile(){return file;}
public void setFile(FormFile file){this.file = file;}

在Action中的处理:
FormFile file = registerForm.getFile();
//获得上传文件的名字
String fname = file.getFileName();
//从file中获得输入流
InputStream is = file.getInputStream();
//构造一个输出流,并指定上传文件在服务器端存放路径
OutputStream os = new FileOutputStream(dir + "/" + fname);
//从is中读取字节流后写入到os中

注意: 上述标签要使用在<html:form>标签中,但是在<html:form>标签中也可以使用标准的html标记(如:<input type="text"/>等)。

3) 显示错误或者正常消息的标签

<html:errors>

该标签在request和session范围内查找ActionMessages或者子类ActionErrors的对象,再从中读取ActionMessage对象,把ActionMessage对象中封装的的错误消息显示在页面上。
该标签处理类获取ActionMessages对象的代码如下:
ActionMessages errors =TagUtils.getInstance().getActionMessages(pageContext,name);
参数name指定ActionMessages对象存放在request和session范围中的key,默认值为Globals.ERROR_KEY。
在ActionForm和Action中都可以生成ActionMessages对象,在ActionForm中的validate()验证方法返回ActionErrors对象,Struts的控制组件RequestProcessor把ActionErrors对象存放在request范围内,存放时的key为Globals.ERROR_KEY(如: request.setAttribute(Globals.ERROR_KEY,errors))。
<html:errors>标签中包括的属性:
name: 指定ActionMessages对象存放在request或者session范围中的key,默认值为Globals.ERROR_KEY。
property: 指定显示消息的属性,若没有设置,将显示ActionMessages对象中所有的ActionMessage。
bundle: 指定资源配置文件,如果没有设置此项,将从Web应用默认的资源配置文件中获得消息。
语法: errors.add(消息属性,消息);
如: errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("error.error1"));
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("error.error2"));
saveErrors(request,errors);
注意: 同一个消息属性可以对应多条消息


使用<html:errors>的三种方法:
a1) 显示全局消息
全局消息指的是不和特定表单字段关联的消息,消息属性为
ActionMessages.GLOBAL_MESSAGE。设置方式:errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("error.global"));
ActionMessages.GLOBAL_MESSAGE是一个常量,它的值为org.apache.struts.action.GLOBAL_MESSAGE,代表全局消息。
在页面中显示该消息的方式:<html:errors property="org.apache.struts.action.GLOBAL_MESSAGE"/>
2) 显示所有的消息
如果在<html:errors/>标签中没有设置property属性,将显示ActionMessages对象中所有的消息。页面中显示消息方式:<html:errors bundle="special"/>
指定了特定的资源配置文件,在struts-config.xml文件中配置为:<message-resources parameter="SpecialErrors" key="special"/>
3) 显示和特定表单字段关联的消息
errros.add("name",new ActionMessage("error.name"));
页面中显示消息方式:
<html:errors property="name" bundle="special"/>
<html:messages>
和<html:errors>相似,也在页面上来显示消息,
使用例子:
<html:messages id="message" name="key" message="true">
<bean:write name="message"/>
</html:messages>
该标签包括以下属性:
name: 指定ActionMessages对象存放在request或者session中的key。标签处理类将根据这一属性key来检索request或者session范围的ActionMessages对象。
message: 指定消息的来源。如果为true,则从request或者
session范围内检索出属性key为Globals.MESSAGE_KEY的ActionMessages对象,此时属性name无效;如果为false,则根据属性name来检索ActionMessages对象,如果此时没有设置name属性,将采用默认值Globals.ERROR_KEY。
message属性的默认值为false。
id: 用来命名从消息集合中检索出的每个ActionMessage对象,
它和<bean:write>标签的name属性匹配。在上述例子中,

<html:messages>标签的处理类每次从消息集合中取出一个

ActionMessage对象,并通过id把它命名为"message",

<bean:write>标签接着把这个名为"message"的ActionMessage

对象的消息输出到页面上。


 


ActionMessages messages = new ActionMessages();


messages.add(ActionMessages.GLOBAL_MESSAGE,


new ActionMessage("error.error1"));


saveMessages(request,messages);


protected void saveMessages(HttpServletRequest request,


ActionMessages messages){


...


request.setAttribute


(Globals.MESSAGE_KEY,messages);


}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值