浏览 5313 次
锁定老帖子 主题:Struts2介绍之使用链接标签
该帖已经被评为隐藏帖
|
||||||
---|---|---|---|---|---|---|
作者 | 正文 | |||||
发表时间:2007-10-03
Web应用区别于普通的站点之处在于Web应用可以创建一个动态的响应。为了使从一个页面中链接一个动态数据变得简单,Struts2框架提供了一系列的标签。
Struts标签的一种用法是创建链接到其他Web资源,特别是针对那些在本地应用中的资源。
<o:p> </o:p>
1.普通链接<o:p></o:p>
Web程序中最普通的应用是链接到其他页面,下面看Welcome.jsp。
<o:p> </o:p>
1.1说明<o:p></o:p>
1.<%@ taglib prefix="s" uri="/struts-tags" %>
此句表示导入struts标签,并以s为前缀。即以s为前缀的标签均来自struts标签库。
<o:p> </o:p>
2.<link href="<s:url value="/css/tutorial.css"/>" rel="stylesheet" type="text/css"/>
此句表示利用url标签导入一个路径,链接到一个文件,注意此路径为项目下的绝对路径。
<o:p> </o:p>
3.<a href="<s:url action="Login_input"/>">Sign On</a>
此句表示利用url标签链接到一个action。
<o:p> </o:p>
1.2注册action<o:p></o:p>
我们在struts.xml中注册一个action来显示welcome.jsp。
注意此action注册在package example下,所以在地址栏中敲入http://localhost:8080/StrutsHelloWorld/example/Welcome.action(StrutsHelloWorld是project名),显示如下。
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
<o:p> </o:p>
2.使用通配符<o:p></o:p>
对于上面的action注册,我们也可以用下面的语句代替。
此句的意思是,如果在没有找到匹配的action名称的情况下,默认调用action名称.jsp。第一句中星号指任意,而第二句中{1}指代第一句中星号指代的内容。
举个例子,如果在地址栏中敲入http://localhost:8080/StrutsHelloWorld/example/1.action,则系统查找struts.xml,发现没有name为1的action,即最后调用name为星号的这个action,根据此action,将输出/example/1.jsp。
或者读者可以直接点击Welcome.jsp中的两个超链接,系统将会报错找不到Login_input.jsp和Register.jsp。因为这两个action还没有注册,也没有相应的jsp文件。
<o:p> </o:p>
3.带参数的链接<o:p></o:p>
超链接后面带有参数大家不会陌生,诸如www.apache.com?language=ch。这个链接后面带有一个language参数,其值为ch。你可以通过request.getParameter(“language”)找到参数值。下面演示在struts2中如何设置带参数的链接。看HelloWorld.jsp。
3.1说明<o:p></o:p>
1.<s:url id="url" action="HelloWorld">
<s:param name="request_locale">en</s:param>
</s:url>
此段表示设置一个url标签指向名为HelloWorld的action,此标签带一个id取名为url,后面会用到。带一个参数request_locale,其值为en。
<o:p> </o:p>
2.<s:a href="%{url}">English</s:a>
此句用到了struts的超链接标签,连接的地址即为1中url,效果如下图所示。点击English,发出的信息为:http://localhost:8080/StrutsHelloWorld/example/HelloWorld.action?request_locale=en
<o:p> </o:p>
3.2注册action到struts.xml<o:p></o:p>
<o:p></o:p>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
||||||
返回顶楼 | ||||||