JSP Struts之HTML标签库详解

发布时间:0000-00-00 00:00:00 作者: hgj_online 点击:73 类别: JSP

JSP Struts之HTML标签库详解

Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。

标签库

说明

HTML 标签

用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单

Bean 标签

在访问JavaBeans 及其属性,以及定义一个新的bean 时使用

Logic 标签

管理条件产生的输出和对象集产生的循环

Template 标签

随着Tiles框架包的出现,此标记已开始减少使用

Nested 标签

增强对其他的Struts 标签的嵌套使用的能力

标签的公共特征

使用固定属性名称的Struts 标签:

属性

说明

id

命名自定义标签创建时的脚本变量名。

name

指出关键字值,在该关键字下可以找到一个存在的bean 。如果给出了scope属性,则仅仅在scope中查找。否

<form>标签系列

使用<form>标签时必须遵循一些规则:

1. 标签中必须包含一个action属性,它是这个标签中唯一必需的属性。如果不具备该属性则JSP页面会抛出一个异常。之后你必须给这个action属性指定一个有效值。一个有效值是指应用程序的Struts配置文件中元素里的任何一个子元素的访问路径。而且相应的元素中必须有一个name属性,它的值是form bean的名称。

<html:form action="/login" >

如果你有上述一个标签 ,那么你的Struts配置文件的元素中必须有一个如下显示为粗体的元素:

<action-mappings>

<action path="/login"

type="com.javapro.struts.LoginAction"

name="loginForm"

scope="request"

input="/login.jsp">

<forward name="success" path="/mainMenu.jsp"/>

</action>

.

.

.

</action-mappings> // 这就是说一个form标签是和form bean相关联的。

2.

3. 任何包含在<form>中用来接收用户输入的标签(<text>、<password>、<hidden>、<textarea>、<radio>、<checkbox>、<select>)必须在相关的form bean中有一个指定的属性值。比如,如果你有一个属性值被指定为“username”的<text>标签,那么相关的form bean中也必须有一个名为“username”的属性。输入<text>标签中的值会被用于生成form bean的userName属性。

<form>标签还有一些不是必须但很有用的“次要”属性。

比如,你可以用focus属性来生成JavaScript,它会“定焦”(focus)到该form所包含的一个元素上。使用focus属性时你需要给它指定元素的名称。

<body>

<html:form action="/login" focus="password">

User Name: <html:text property="userName"/>

<br>Password: <html:text property="password"/>

<br><html:submit/>

</html:form>

</body>

代码解析后:

<body>

<form name="loginForm" method="post" action="/myStrutsApp/login.do">

User Name: <input type="text" name="userName" value="">

<br>Password: <input type="text" name="password" value="">

<br><input type="submit" value="Submit">

</form>

<script language="JavaScript" type="text/javascript">

<!--

if (document.forms["loginForm"].elements["password"].type != "hidden")

document.forms["loginForm"].elements["password"].focus()

// -->

</script>

</body>

有没有看到这个标签库是如何建立JavaScript来定焦到password元素上的? 这也是该库让人着迷的地方之一。你不用担心如何在客户端进行编程,它会帮你自动生成。

还可以看到,<form>标签中method属性的缺省值是POST。

<text>标签、<hidden>标签、<textarea>标签、<radio>标签、<checkbox>标签、<submit>标签、<reset>标签:

都有一个property属性,最后会被转换成HTML中的name属性,当然还有name和value属性。

<password>标签

<html:password property="password" redisplay="false"/>

该标签中的一个很重要的属性是"redisplay",它用于重新显示以前输入到这个区域中的值。该属性的缺省值为true。然而,为了使password不能被重新显示,你或许希望将该属性的值设为false。

<select>标签和<option>标签:

<html:select property="color" size="3">

<html:option value="r">red</html:option>

<html:option value= "g">green</html:option>

<html:option value= "b">blue</html:option>

</html:select>

遗补:1.)<html:link>标签

forward属性:链接到一个global forward上;action属性:链接到一个action mapping上;

href属性:这个链接会转发给控制器,由控制器做决定;page属性:一个相对的链接。

用page属性链接到action上:

<html:link page="/html-link.do">

Linking with the page attribute.

</html:link>

注意,上面的代码中你不必指定web的关联。相反的,如果你使用href属性,你就必须像下面所示指出web的关联(这里的关联就是struts-exercise):

<html:link href="/struts-exercise-taglib/html-link.do">

Using Href

</html:link>

很明显,当你在相同的web应用程序中做链接是,它比page属性更加好。你也能用href在不同的服务器上创建链接:

<html:link href="http://otherserver/strutsTut/html-link.do">

Using Href

</html:link>

另一种链接到html-link.do的方法是用action属性:

<html:link action="/html-link">

Using Action attribute

</html:link>

你也可以以硬编码的方式使用参数:

<html:link page="/htmllink.do?doubleProp=3.3&amp;longProp=32">

Double and long via hard coded changes

</html:link>

或者使用paramId, paramName, and paramProperty属性:

<html:link page="/html-link.do" paramId="booleanProperty" paramName="testbean"

paramProperty="nested.booleanProperty">

Boolean via paramId, paramName, and paramValue

</html:link>

解析后的代码:

<a href="/struts-exercise-taglib/html-link.do?booleanProperty=false">

Boolean via paramId, paramName, and paramValue

</a>

另外,还能使用带name属性的Map来实现传递多个参数:

<%

java.util.HashMap newValues = new java.util.HashMap();

newValues.put("floatProperty", new Float(444.0));

newValues.put("intProperty", new Integer(555));

newValues.put("stringArray", new String[]

{ "Value 1", "Value 2", "Value 3" });

pageContext.setAttribute("newValues", newValues);

%>

...

<html:link action="/html-link" name="newValues">

Float, int, and stringArray via name (Map)

</html:link>

你也能够链接到Map类型的action上,上面的代码解析后的结果:

<html:messages property="property2" message="true" id="msg" header="messages.header" footer="messages.footer">

<tr><td><%= pageContext.getAttribute("msg") %></td></tr>

</html:messages>

2.) selectoption标签
<html:select>
的属性:property-与ActionForm中的某个属性对应;size-显示option的数目;multiple-默认为fales,表示不能多选,当设定为true时,property对应的ActionForm的属性必须为数组。
<html:select property="name" size=6 multiple="true">
<html:option>
的属性:keylocalbundle-指定Resource Bundle中的内容。
例如 <html:option value="color1">Orange</html:option>
<html:option value="color1" bundle="htmlselect.Colors" key="htmlselect.red"/>
它和配置文件中的<message-resources>元素的key属性匹配 --> <message-resource parmeter="HtmlSelectColors" key="htmlselect.Colors"/>
<message-resource>
中配置的资源文件为HtmlSelectColors.properties,相关内容为 htmlselect.red=RED
<html:options>
标签,提供了一组<option>元素,在<html:select>元素中可以包含多个<html:options>元素。非常灵活,可以取得集合或数组中的值。
1 <html:options collection="coll" property="value" labelProperty="label" /> 这指在coll的集合中存放了optionsvalue指实际能被提交的值,label是显示给用户的值。
2 <html:options property="value" labelProperty="label" /> collection属性不被指定时,将使用表单相关的form beanform beanvalue属性存放option valuelabel属性值显示给用户。
3 <html:options name="valueBean" property="values" labelName="labelsBean" labelProperty="labels" /> 这个意思是value值存放在名为valueBeanbeanvlaues属性中,它是一个collectionlabel值也是同样的意思。
<html:optionsCollection>
标签,和<html:options>的用法很相似。
例如 <html:select property="custId"><html:optionsCollection property="customers" label="name" value="custId" /></html:select>
这个标签和org.apache.structs.util.LabelValueBean结合的很好,如果把labelvalue都放到这个对象中,可以很简单的这样应用:
<html:select property="custId"><html:optionsCollection property="customers" /></html:select>

标签JSP
关键词: ASP NET 诱惑 源码 免费 系统 更多 开通 RSS 体育 词库 国际
关于本站
This AutoPosting,Dot Need Update, Testing........
分类
qq熊 革命 混在三国当军阀 完美国际拜年任务 谢茹 女生日记 Auto Post 风云榜 站点 名称 鬼泣4 王传一 伊利股份 冲锋 2008春节联欢晚会 贺军翔 网络 internet 服务器 站长 搜索 Google 广告 美元 联盟 国外 日本 加拿大 域名 注册 登录 注明 原创 ASP PHP JSP c# NET COM CN 下载 软件 小说 成人 诱惑 MM 漂亮 亚洲无码 软件 产生 厂商 开发 程序员 笑话 业界 资讯 新闻 热门 代码 源码 code 推广 免费 hot 系统 小偷 采集 财经 计算机 活动 免费空间 网页 图片 视频 资讯 地图 更多 登录 高级 搜索 使用 偏好 语言 工具 所有网页 中文网页 广告 计划 自助式 在线 实时 开通 游戏 盗版 股票 发财 500万 聚合 RSS GetString 网络 体验 体育 模板 dz 参加 差价 插件 blog wordpress mail doc 上传 免费下载 最新 电影 mp3 原因 音乐 我们 特色 特殊 香港 台湾 介绍 结束 爱情 词库 科技 国家 国际 热门 我顶 vodie seo 大小 大学生 门户 统计 偷情 抓取 超级 淫荡 色情 销售 阿帕奇 浏览器 奥运 傲游 2008 N多 关键词 内容库 数据库 自动 主动 研究 人工智能 培训 教材 热门商品 下载 迅雷5下载 我是传奇 游戏下载 卓依婷第一网 浪漫满屋 色戒在线看 跑跑卡丁车 跑跑卡丁车下载 美国股市 叶一茜8月生产 好电影 好看电影 亚洲有码 亚洲无码BT 无码BT下载 Host Ads she电影 周杰伦演唱会 最新播报 波霸 B图 洋妞 XXX 舒淇3级 港产三级 限制级 禁播 在线视频 热门电影 top排行榜 OK版 活着 火灾 回眸 毁灭 人道 UFO 美国签证 加拿大签证 游戏代练 VPN CDMA Youtube OH Hehe 无聊 成人讨论区 成人论坛 性息 华南性息 广州换妻俱乐部 上海换妻俱乐部 全国性息 欧美无码 欧美无码BT下载 VIP商业 搜索 打劫 天啊 IM286 无偿 捐款 新浪 搜狐 亚马逊 网易 网银 网游 好看 病毒 杀毒 木马 中毒了 卡巴斯基 卡不死你 瑞星 肉盾 若顿 诺顿杀毒 大洞 骚货 诱惑 上了 领导 秘书 无事 笑话 MJJ 热门网游 韩国签证 超级韩国 小日本
热门TAG
友情链接
版权信息
Cnlabs.net 2003 测试