Struts2中的链接标签

来源:互联网 发布:如何招聘淘宝客服 编辑:程序博客网 时间:2024/05/16 13:05

为了使从一个页面中链接一个动态数据变得简单,Struts2框架提供了一系列的标签。
Struts2标签的一种用法是创建链接到其他Web资源,特别是针对那些在本地应用中的资源

<%@ page c %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>

<title>Welcome</title>

<link href="<s:url value="/css/tutorial.css"/>" rel="stylesheet"

type="text/css"/>
</head>


<body>
<h3>Commands</h3>
<ul>

<li><href="<s:url action="Login_input"/>">Sign On</a></li>

<li><href="<s:url action="Register"/>">Register</a></li>
</ul>

</body>
</html>

 

<action name="Welcome">

<result>/example/Welcome.jsp</result>
</action>

注意此action注册在package example下,所以在地址栏中敲入http://localhost:8080/StrutsHelloWorld/example/Welcome.actionStrutsHelloWorldproject名),会导向到Welcome.jsp。



2
对于上面的action注册,我们也可以用下面的语句代替。
.使用通配符

<action name="*">

<result>/example/{1}.jsp</result>
</action>

此句的意思是,如果在没有找到匹配的action名称的情况下,默认调用action名称.jsp。第一句中星号指任意,而第二句中{1}指代第一句中星号指代的内容。

    举个例子,如果在地址栏中敲入
http://localhost:8080/StrutsHelloWorld/example/1.action,则系统查找struts.xml,发现没有name1action,即最后调用name为星号的这个action,根据此action,将输出/example/1.jsp


或者读者可以直接点击Welcome.jsp中的两个超链接,系统将会报错找不到Login_input.jspRegister.jsp。因为这两个action还没有注册,也没有相应的jsp文件。

3.带参数的链接
超链接后面带有参数大家不会陌生,诸如http://www.apache.com/?language=ch。这个链接后面带有一个language参数,其值为ch。你可以通过request.getParameter(“language”)找到参数值。下面演示在struts2中如何设置带参数的链接。看HelloWorld.jsp

 

<%@ taglib prefix="s" uri="/struts-tags"%>

<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h2><s:property value="message" /></h2>
<h3>Languages</h3>
<ul>

<li>


<s:url id="url" action="HelloWorld">

<s:param name="request_locale">en</s:param>


</s:url>


<s:a href="%{url}">English</s:a>

</li>

<li>


<s:url id="url" action="HelloWorld">

<s:param name="request_locale">es</s:param>


</s:url>


<s:a href="%{url}">Espanol</s:a>

</li>
</ul>

</body>
</html>

3.1说明

1<s:url id="url" action="HelloWorld">

<s:param name="request_locale">en</s:param>

</s:url>
此段表示设置一个url标签指向名为HelloWorldaction,此标签带一个id取名为url,后面会用到。带一个参数request_locale,其值为en

2<s:a href="%{url}">English</s:a>
此句用到了struts2的超链接标签,连接的地址即为1url,点击English,发出的信息为:http://localhost:8080/StrutsHelloWorld/example/HelloWorld.actionrequest_locale=en



3.2注册actionstruts.xml
<struts>

<package name="example" namespace="/example"


extends="struts-default">



<action name="HelloWorld" >


<result>/example/HelloWorld.jsp</result>


</action>



1.普通链接
Web程序中最普通的应用是链接到其他页面,下面看Welcome.jsp1.1说明

1.<%@ taglib prefix="s" uri="/struts-tags" %>
此句表示导入struts标签,并以s为前缀。即以s为前缀的标签均来自struts标签库。


2.<link href="<s:url value="/css/tutorial.css"/>" rel="stylesheet" type="text/css"/>
此句表示利用url标签导入一个路径,链接到一个文件,注意此路径为项目下的绝对路径。


3.<a href="<s:url action="Login_input"/>">Sign On</a>
此句表示利用url标签链接到一个action。


1.2注册action
我们在struts.xml中注册一个action来显示welcome.jsp。