Struts HTML标签
<html:html>标签
属性的作用:
lang:值为true时,就根据存储在HttpSession中的Locale对象来输出网页使用的语言。如果不存在session或session中没有Locale对象,就以Http请求头中的Accept-language属性来设置输出语言。如果请求头中没有Accept-language,就使用默认的Locale来输出语言
示例:
<html:htmllang="true"/>
<html:form>标签:生成HTML<formaction="">元素
属性的作用:
method:表单提交的方法
action:指定表单提交后,处理该请求的Action组件名称
示例:
<html:formmethod="POST"action="/index.do">
<html:text>标签:生成一个HTML<inputtype="text"/>
属性的作用:
property:与ActionFormBean中的属性名相对应,表单提交时会value属性中的值赋给相应的ActionFormBean中的属性。(REQUIRED)
value:指定文本框的默认值。
name:ActionForm的名称,或其他javabean的名称,用来给该控件提供数据。如果没有指定,那么将使用form标签中相应的ActionFormBean
示例:
<html:textproperty="name"/>
<html:password>标签:生成一个HTML<inputtype="password"/>
属性的作用:
property:与ActionFormBean中的属性名相对应,表单提交时会将value属性中的值赋给相应的ActionFormBean中的属性(REQUIRED)
value:指定密码文本框的默认值。
name:ActionForm的名称,或其他javabean的名称,用来给该控件提供数据。如果没有指定,那么将使用form标签中相应的ActionFormBean
redisplay:取值为true或false。在密码框中填入内容后,从新刷新(请求)该页面是否仍保留已经填写过的密码。推荐选择false
示例:
<html:passwordredisplay="false"property="password"/>
<html:radio>标签:生成一HTML<inputtype="radio"/>
属性的作用:
property:与ActionFormBean中的属性名相对应,表单提交时会将value属性的中值赋给相应的ActionFormBean中的属性(REQUIRED)
value:指定单选按钮的默认值。(REQUIRED)
name:ActionForm的名称,或其他javabean的名称,用来给该控件提供数据。如果没有指定,那么将使用form标签中相应的ActionFormBean
bundle:指定特定的ResourceBundle,它与struts-config.xml中
<message-resourceskey=""/>元素中的key中的值对应
示例:
<html:radiovalue="boy"property="sex">boy</html:radio>
<html:radiovalue="girl"property="sex">girl</html:radio>
<html:radio>使用了同一个property,表示它们是一个组,只能从其中任选一个。其对应的ActionFormBean中的属性为sex,sex中的值为被选中的单选按钮中的值,如果没有一个单选按钮被选中,那么sex中的值为null
<html:multibox>标签:生成一个HTML<inputtype="checkbox"/>
属性的作用:
property:与ActionFormBean中的属性名相对应,表单提交时会将value属性中的值赋给相应的ActionFormBean中的属性。(REQUIRED)
value:指定复选框的默认值。
name:ActionForm的名称,或其他javabean的名称,用来给该控件提供数据。如果没有指定,那么将使用form标签中相应的ActionFormBean
bundle:指定特定的ResourceBundle,它与struts-config.xml中
<message-resourceskey=""/>元素中的key中的值对应
示例:
<html:multiboxproperty="favorite"value="movie"/>
<html:multiboxproperty="favorite"value="VideoGame"/>
<html:multiboxproperty="favorite"value="BasketBall"/>
相对应的ActionBeanForm中的属性及相应的getter与setter方法如下:
privateStringfavorite[]=newString[0];
publicvoidsetFavorite(Stringfavorite[])
{
this.favorite=favorite;
}
publicString[]getFavorite()
{
returnfavorite;
}
表单提交时(如果全部选中),会将value属性中的值保存至数组中,那么favorite数组中的内容为{"movie","VideoGame","BasketBall"}。如果"VideoGame"没有被选中,那么提交后favorite数组中的内容为:
{"movie","BasketBall"}
<html:select>标签:生成一个HTML<selectmultiple="">
语法格式:
<html:selectproperty="country"multiple=“”size=“”>
<html:optionvalue="Canda"/>
<html:optionvalue="China"/>
<html:optionvalue="American"/>
</html:select>
属性的作用:
property:与ActionFormBean中的属性名相对应,表单提交时会将value属性中的值赋给相应的ActionFormBean中的属性。(REQUIRED)
multiple:指定是否多选,如果设置为true,就表示多选列表,支持多项选择;如果设置为false,则表示下拉列表,支持单项选择。默认为false。
name:ActionForm的名称,或其他javabean的名称,用来给该控件提供数据。如果没有指定,那么将使用form标签中相应的ActionFormBean
size:指定每次在网页上可以显示的选项的数目
示例:
<html:selectproperty="country"multiple="false">
其所对应ActioFromBean中的Stringcountry;属性
<html:selectproperty="skill"multiple="true"size="3">
其所对应ActioFromBean中的属性及getter和setter方法如下:
privateStringskill[];
publicString[]getSkill()
{
returnskill;
}
publicvoidsetSkill(String[]skill)
{
this.skill=skill;
}
<html:select>不单独使用,要指定<html:select>中选项的值必须使用<html:option>作为其子元素。下面介绍<html:option>的用法
<html:option>属性的作用:
value:指定该组件在网页中显示的内容
bundle:指定特定的ResourceBundle,它与struts-config.xml中
<message-resourceskey=""/>元素中的key中的值对应
key:<message-resources>元素中配置的ResourceBundle文件中消息key相对应
示例:
1、直接赋值
<html:optionvalue="SQLServer"/>
2、采用ResourceBundle文件绑定
struts-config.xml中配置如下
<message-resources
key="myresource"
parameter="com.accp.struts.ApplicationResources"
/>
ApplicationResources文件内容如下:
form.skill=SQLServer
<html:optionvalue="form.skill"
bundle="myresource"
key="form.skill"/>
<html:link>标签:生成一个超链接
属性的作用:
page:要链接页面的相对路径,一般用于链接同一应用程序中的页面
href:要链接页面的完全路径,一般用于链接不同应用程序中的页面
forward:将请求转发给struts-config.xml中所配置的<global-forwards>元素下的<forward>,再由其转发给要链接的页面
action:将请求转发给任意一个Action
示例:
<html:linkpage="/other.jsp">
<html:linkhref="/MyHtml/other.jsp">
<html:linkforward="other">
与其相对应的是
<global-forwards>
<forwardname="other"path="/other.jsp"></forward>
</global-forwards>
<html:linkaction="/other.do">
与其相对应的是:
<action-mappings>
<actionforward="/other.jsp"path="/other"/>
</action-mappings>
<html:errors>输出保存在ActionMessages中的错误消息
属性的作用:
name:指定ActionMessages对象存放在request,session中的key,如果未指定。默认为Globals.ERROR_KEY.(一般不要指定)
property:指定消息的属性。如果为设置,将显示ActionMessages中的所有信息。
bundle:指定ResourceBundle。如果没有设置,则使用默认的ResourceBundle
使用步骤:
1)创建资源文件ApplicationResources.properties,向其中指定一些预定义信息
errors.error.one=<fontcolor\="red">thisisa
ActionErrors'smessage</font><br/>
errors.error.three=<fontcolor\="blue">thethird
ActionErrors'smessage</font><br/>
errors.error.two=<fontcolor\="green">thesecondActionErrors'smessage</font><br/>
注:<html:errors>可以自动识别html元素
ApplicationResources.properties文件在struts-config.xml中按如下方式配置
<message-resources
key="form"--注意:这里指定了该文件的key
parameter="com.accp.resource.ApplicationResources"
/>
2)在ActionFormBean中的validate()方法中加入如下代码:
ActionErrorserrors=newActionErrors();
errors.add(Globals.ERROR_KEY,
newActionMessage("errors.error.one"));
errors.add(ActionMessages.GLOBAL_MESSAGE,
newActionMessage("errors.error.two"));
errors.add("threeError",
newActionMessage("errors.error.three"));
注意:
(a)三个add()方法中第一个参数不同,Globals.ERROR_KEY与ActionMessages.GLOBAL_MESSAGE都是系统默认的常量,其功能一样。"threeError"为自定义值。
(b)以上代码也可以写入Action类中的execute()方法中,但是后面要加上一下代码
this.addErrors(request,errors);
3)在网页中显示<html:errors>中的内容
a)显示所有信息:
<html:errorsbundle="form"/>
注意:<html:errors>中的bundle属性中的值"form"与struts-config.xml文件中
<message-resources
key="form"
parameter="com.accp.resource.ApplicationResources"
/>
中的key="form"相匹配
如果struts-config.xml文件中<message-resources>并没有指定key属性,那么<html:errors>中的bundle属性就可以省略
即:
<message-resources
parameter="com.accp.resource.ApplicationResources"
/>
<html:errors/>
<html:errors/>
b)显示特定信息:
<html:errorsproperty="threeError"bundle="form"/>
注意:<html:errors>中的property属性中的值"threeError"与前面步骤(2)中的代码
errors.add("threeError",
newActionMessage("errors.error.three"));
中的"threeError"相同。这样可以输出想要显示的信息
<html:messages>输出保存在ActionMessages中的错误消息
语法格式:
<html:messages>
<bean:writename="message"/>
</html:messages>
属性的作用:
name:指定ActionMessages对象存放在request,session中的key,如果未指定。默认为Globals.MESSAGE_KEY.(一般不要指定)
id:为从消息中检索出来的ActionMessages对象命名。该名称要和
<bean:write/>中name属性的值相同。
bundle:指定ResourceBundle。如果没有设置,则使用默认的ResourceBundle
message:指定消息的来源,默认值是true。如果为true,就从request,
session范围内检索key为Globals.MESSAGE_KEY的ActionMessages对象,此时name属性无效。如果为false,那么就根据name属性中的值来检索ActionMessages对象,此时若没有设置name属性,将采用默认值Globals.ERROR_KEY。
filter:是否过滤资源文件中的html标记。false为不过滤,true为过滤。
默认值为true。
注:<html:errors>不可以自动识别html元素,它会将html元素当作普通字符。
使用步骤:
(1)创建资源文件ApplicationResources.properties,向其中指定一些预定义信息
errors.message.one=<fontcolor\="red">thisisa
ActionMessage'smessage</font><br/>
errors.message.three=<fontcolor\="blue">thethird
ActionMessage'smessage</font><br/>
errors.message.two=<fontcolor\="green">thesecond
ActionMessage'smessage</font>
ApplicationResources.properties文件在struts-config.xml中按如下方式配置
<message-resources
key="form"--注意:这里指定了该文件的key
parameter="com.accp.resource.ApplicationResources"
/>
(2)在Action类的execute()方法中加入如下代码:
ActionMessagesmessage=newActionMessages();
message.add(ActionMessages.GLOBAL_MESSAGE,
newActionMessage("errors.message.one"));
message.add(Globals.MESSAGE_KEY,
newActionMessage("errors.message.two"));
message.add("threeMessage",
newActionMessage("errors.message.three"));
this.saveMessages(request,message);
注意:
(a)三个add()方法中第一个参数不同,Globals.ERROR_KEY与ActionMessages.GLOBAL_MESSAGE都是系统默认的常量,其功能一样。"threeMessage"为自定义值。
(b)以上代码不可以在ActionFormBean类中的validate()方法中使用。
(3)在网页中显示<html:messages>中的内容
a)显示所有信息:
<html:messagesbundle="form">
<bean:writename="message"filter="false"/>
</html:messages>
注意:<html:messages>中的bundle属性中的值"form"与struts-config.xml文件中
<message-resources
key="form"
parameter="com.accp.resource.ApplicationResources"
/>
中的key="form"相匹配
如果struts-config.xml文件中<message-resources>并没有指定key属性,那么<html:errors>中的bundle属性就可以省略
即:
<message-resources
parameter="com.accp.resource.ApplicationResources"
/>
<html:messages>
<bean:writename="message"filter="false"/>
</html:messages>
b)显示特定信息:
<html:messagesid="message"bundle="form"
property="threeMessage">
<bean:writename="message"/>
</html:messages>
注意:<html:messages>中的property属性中的值"threeMessage"与前面步骤(2)中的代码
message.add("threeMessage",
newActionMessage("errors.message.three"));
中的"threeMessage"。
这样可以输出想要显示的信息(实际上在这里不会输出任何内容,但是若和validator验证框架一起使用便可以看到效果,这种使用方法,可以参考validator验证框架中的例子)
<bean:message>输出资源文件中的信息
属性的作用:
bundle:指定ResourceBundle。如果没有设置,则使用默认的ResourceBundle
key:指定ResourceBundle中的key
arg0,arg1,arg2,arg3:ResourceBundle中资源文件内容的占位符
使用步骤:
(1)创建资源文件ApplicationResources.properties,向其中指定一些预定义信息
message.info=<fontcolor\="red">thisisamessageformresourcebundle</font><br>
message.info.args=<fontcolor\="red">hello{0},
welcometo{1}</font><br>
ApplicationResources.properties文件在struts-config.xml中按如下方式配置
<message-resources
key="form"--注意:这里指定了该文件的key
parameter="com.accp.resource.ApplicationResources"
/>
(2)在网页中显示<bean:messages>中的内容
(a)<bean:messagebundle="form"key="message.info"/>
注意:<bean:messages>中的bundle属性中的值"form"与
struts-config.xml文件中
<message-resources
key="form"
parameter="com.accp.resource.ApplicationResources"
/>
中的key="form"相匹配
如果struts-config.xml文件中<message-resources>并没有指定key属性,那么<bean:message>中的bundle属性就可以省略,即:
<message-resources
parameter="com.accp.resource.ApplicationResources"
/>
<bean:messagekey="message.info"/>
(b)<bean:messagebundle="form"
key="message.info.args"
arg0="jack"arg1="xfaccp"/>
其中:arg0,arg1分别对应资源文件
message.info.args=<fontcolor\="red">hello{0},
welcometo{1}</font><br>
中的{0},{1}