Struts1 标签 笔记
Struts html 标签库
用于生成基本的html元素的标签
(1)<html:htmllang="true">根据HttpSession中的Locale对象来决定语言;或http-header中的accept-language;根据默认locale输出语言;
<htmllang="zh-CN">
(2)<html:base>在<head>部分生成〈base〉元素,生成当前网页的绝对url路径。
(3)<html:linkforward="指定全局转发连接"href="指定完整的url连接"page=“指定相对于当前网页的url”><a>
(4)<html:rewrite>uri
例如:
<global-forwards><forwardname="index"path="/index.jsp"/></global-forwards>
<html:linkforward="index"></html:link>
对应<ahref="/**/index.jsp"></a>
<html:linkhref="http://www.sina.com"></html:link>
对应<ahref="http://www.sina.com"></a>
<html:linkpage="/**.do"></html:link>
对应<ahref="/**/**.do">relative</a>
<html:linkpage="/**.do"paramid="urlParamName"paramname="stringBean"></html:link>stringBean数值为ValuetoPassonurl
<html:linkpage="/**.do"paramid="urlParamName"paramname="customerBean"paramProperty="name"></html:link>customerBean.name数值为weiqin
<html:rewritepage="/**.do"paramid="urlParamName"paramname="stringBean"/>
<html:rewritepage="/**.do"paramid="urlParamName"paramname="customerBean"paramProperty="name"/>
对应:
<ahref="/**/**.do?urlParamName=Value+to+Pass+on+url"></a>
<ahref="/**/**.do?urlParamName=weiqin"></a>
/**/**.do?urlParamName=Value+to+Pass+on+url
/**/**.do?urlParamName=weiqin
<html:linkpage="/**.do"name="map"/>map为一个map类型的变量,存放参数名及其值;
(5)<html:imgpage="/**.gif">page属性的值为相对于当前页面的地址;
<img src="/**/*.gif">基本的表单标签
(1)<html:formaction="actionName.do">action属性指定用户提交表单后,处理用户请求的组件;
<formname="actionNameForm"method="post"action="**/actionName.do">
struts将在配置文件中查找对应的action组件:
例如
<actionpaTH="/actionName"type="..."name="actionNameForm"scope="session"validate="false">
<forwardname=""path=""/>
</action>
(2)<html:textproperty="***"/>
(3)<html:cancel/>
<inputtype="submit"name="***"value="**">
(4)<html:reset/>
<inputtype="reset"name="***"value="**">
(5)<html:cancel/>
<inputtype="submit"name="***"value="**">
(6)<html:hiddenproperty=""/>
<inputtype="hidden"name="**"value=""/>
检查框和单选按钮标签(1)<html:checkbox property="**" value=“true/false”> property必须为boolean value属性用来设置用户选中检查框时的值;默认true
<inputtype="checkbox"name="**"value="true/false">
(2)<html:multiboxproperty="some_array"value="default_value"/>
(3)<html:radioproperty="radioVal"value="">
<inputtype="radio"name="radioVal"value="">
下拉列表和多选列表
(1)<html:selectproperty="custId">简单类型
<html:selectproperty="colors"size="6"multiple="true">数组类型
(2)<html:optionvalue="val1"></html:option>
<html:optionvalue="***"bundle="**.**"key="**.red"/>
bundle指定resourcebundle,它和struts-config.xml中的〈message-resources>元素的key属性(资源文件名)匹配;
key指定资源文件中的key-value中的key;
(3)<html:optionscollection=""property="value"labelProperty="label"/>
collection指定了存放可选项的集合;page范围;
property指定了集合中可选项的实际值;
labelProperty指定了可选项的显示值;(4)<html:optionsCollection property="customers" label="name" value="custId"/>
property指定了存放可选项的集合;page范围;
value指定了集合中可选项的实际值;
label指定了可选项的显示值;
文件标签
<html:fileproperty="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对象,
ActionMessageserrors=newActionMessages();
errors.add("message_key",newActionMessage("i18.message.key",some_value_insert_into_value));
saveErrors(request,errors);显示错误消息
<html:errorsname="key;defaultvalueGlobals.ERROR_KEY"property="消息属性,若不设置,显示ActionMessages对象中的所有的ActionMessage"bundle=“ResourceBundle,若没显示,从默认的resourcebundle中取值”>
显示的文本放在resource bundle中。例如:
errors.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage("***.**.**"));
<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:messagesid="message"message="true">
<td><bean:writename="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,newActionMessage());
saveMessages(request,actionMessages);