Struts1 标签 笔记
Struts html 标签库
用于生成基本的html元素的标签
(1)<html:html lang="true">根据HttpSession中的Locale对象来决定语言;或http-header中的accept-language;根据默认locale输出语言;
?<html lang="zh-CN">
(2)<html:base>在<head>部分生成〈base〉元素,生成当前网页的绝对url路径。
(3)<html:link forward="指定全局转发连接" href="指定完整的url连接" page=“指定相对于当前网页的url”> <a>
(4)<html:rewrite> uri
例如:
<global-forwards><forward name="index" path="/index.jsp"/></global-forwards>
<html:link forward="index"></html:link>
对应 <a href="/**/index.jsp"></a>
<html:link href="http://www.sina.com"></html:link>
对应<a href="http://www.sina.com"></a>
<html:link page="/**.do"></html:link>
对应<a href="/**/**.do">relative</a>
<html:link page="/**.do" paramId="urlParamName" paramName="stringBean"></html:link> stringBean数值为Value to Pass on url
<html:link page="/**.do" paramId="urlParamName" paramName="customerBean" paramProperty="name"></html:link>customerBean.name 数值为weiqin
<html:rewrite page="/**.do" paramId="urlParamName" paramName="stringBean"/>
<html:rewrite page="/**.do" paramId="urlParamName" paramName="customerBean" paramProperty="name"/>
对应:
<a href="/**/**.do?urlParamName=Value+to+Pass+on+url"></a>
<a href="/**/**.do?urlParamName=weiqin"></a>
/**/**.do?urlParamName=Value+to+Pass+on+url
/**/**.do?urlParamName=weiqin
<html:link page="/**.do" name="map"/>map为一个map类型的变量,存放参数名及其值;
(5)<html:img page="/**.gif"> page属性的值为相对于当前页面的地址;
? <img src="/**/*.gif">
?
基本的表单标签
(1)<html:form action ="actionName.do"> action属性指定用户提交表单后,处理用户请求的组件;
?<form name="actionNameForm" method="post" action="**/actionName.do">
?struts将在配置文件中查找对应的action组件:
?例如
?<action paTH="/actionName" type="..." name="actionNameForm" scope="session" validate="false">
??<forward name="" path=""/>?
?</action>
(2)<html:text property="***"/>
(3)<html:cancel/>
?<input type="submit" name="***" value="**">
(4)<html:reset/>
?<input type="reset" name="***" value="**">?
(5)<html:cancel/>
?<input type="submit" name="***" value="**">
(6)<html:hidden property=""/>
?<input type="hidden" name="**" value=""/>
检查框和单选按钮标签
(1)<html:checkbox property="**" value=“true/false”> property必须为boolean value属性用来设置用户选中检查框时的值;默认true
?<input type="checkbox" name="**" value="true/false">
(2)<html:multibox property="some_array" value="default_value"/>
(3)<html:radio property="radioVal" value="">
?<input type="radio" name="radioVal" value="">
下拉列表和多选列表
(1)<html:select property="custId" >简单类型
?? <html:select property="colors" size="6" multiple="true">数组类型
(2)<html:option value="val1"></html:option>
?? <html:option value="***" bundle="**.**" key="**.red"/>
bundle指定resource bundle,它和struts-config.xml中的〈message-resources>元素的key属性(资源文件名)匹配;
key指定资源文件中的key-value中的key;
(3)<html:options collection="" property="value" labelProperty="label"/>
collection指定了存放可选项的集合;page范围;
property指定了集合中可选项的实际值;
labelProperty指定了可选项的显示值;
(4)<html:optionsCollection property="customers" label="name" value="custId"/>
property指定了存放可选项的集合;page范围;
value指定了集合中可选项的实际值;
label指定了可选项的显示值;
文件标签
<html:file property="file"/> property 为FormFile类型;
此标签必须在<html:form>标签中;且form的enctype=“multipart/form-data”method="post"
<html:errors>
?
<html:errors>标签
用于输出错误消息;
2类错误:全局错误;字段级错误;
此标签在request和session范围内寻找ActionMessages或子类 ActionErrors,再从ActionMessages集合中读取ActionMessage对象,把ActionMessage对象包含的消息
文本显示到网页上。
Globals.ERROR_KEY默认的值;
ActionFormBean中的validate返回ActionErrors,由requestProcessor将其存入request范围;
Action类的execute()方法中可以生成ActionMessages对象,
ActionMessages errors=new ActionMessages();
errors.add("message_key",new ActionMessage("i18.message.key",some_value_insert_into_value));
saveErrors(request,errors);
显示错误消息
<html:errors name="key;default value Globals.ERROR_KEY" property="消息属性,若不设置,显示ActionMessages对象中的所有的ActionMessage" bundle=“Resource Bundle,若没显示,从默认的resource bundle中取值”>
显示的文本放在resource bundle中。
例如:
errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("***.**.**"));
<html:errors property="org.apache.struts.action.GLOBAL_MESSAGE"/>
<html:errors bundle="**"/> bundle 定义在struts-config.xml
errors.add("checkbox1" , new ActionMessage("error.checkbox"));
<html:errors property="checkbox1" bundle="***"/>
?
<html:messages>标签
<html:messages id="message" message="true">
?<td> <bean:write name="message"/></td>
</html:messages>
name:指定ActionMessages对象存放的key;
message:指定消息来源 true表示,从request/session中寻找key为Globals.MESSAGE_KEY的ActionMessages对象,此时name属性无效;
???false表示,根据name属性来检索ActionMessages对象,若没有设置name,则采用默认值Globals.ERROR_KEY.
id:命名从消息集合检索到的每个ActionMessage对象,它和<bean:write>标签的name属性匹配。
ActionMessages actionMessages = new ActionMessages();
actionMessages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage());
saveMessages(request,actionMessages);