struts2 s:url和s:a

转载 2011年01月13日 11:15:00
Struts2中的链接标签 <s:url>和<s:a>
普通链接
Web 程序中最普通的应用是链接到其他页面,下面看 Welcome.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ 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><a href="<s:url action="Login_input"/>">Sign On</a></li>
    <li><a href="<s:url action="Register"/>">Register</a></li>
</ul>
</body>
</html>
1.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
<action name="Welcome">
       <result>/example/Welcome.jsp</result>
</action>
注意此 action 注册在 package example 下,所以在地址栏中敲入 http://localhost:8080/StrutsHelloWorld/example/Welcome.action StrutsHelloWorld project 名),会导向到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 ,发现没有 name 1 action ,即最后调用 name 为星号的这个 action ,根据此 action ,将输出 /example/1.jsp
或者读者可以直接点击 Welcome.jsp 中的两个超链接,系统将会报错找不到 Login_input.jsp Register.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 标签指向名为 HelloWorld action ,此标签带一个 id 取名为 url ,后面会用到。带一个参数 request_locale ,其值为 en
2 <s:a href="%{url}">English</s:a>
此句用到了 struts2 的超链接标签,连接的地址即为 1 url ,点击 English ,发出的信息为: http://localhost:8080/StrutsHelloWorld/example/HelloWorld.action request_locale=en
3.2 注册 action struts.xml
<struts>
       <package name="example" namespace="/example"
              extends="struts-default">
              <action name="HelloWorld" >
                     <result>/example/HelloWorld.jsp</result>
              </action>
       </package>
</struts>

struts2中<s:url>标签的用法

这个标签是用来创建一个URL,可以用这个子标签来为URL添加请求参数,如果参数是一个数组或者集合,其中所有的值都会作为参数。 几个比较重要的属性: action (String):action的名字,...
  • Derek_BMW
  • Derek_BMW
  • 2014年03月23日 13:23
  • 3139

Struts2 中 关于s:url 标签 的使用问题

因为value值会自动的进行Ognl解析,如果不希望进行Ognl 解析,可以使用单引号‘’加以封装就可以了 ${url }...
  • chuck_kui
  • chuck_kui
  • 2017年01月03日 13:17
  • 622

使用struts2的<s:param>等标签向action传值出现中文乱码的解决方法

最近公司OA改版,由于修改了原来的
  • chjx501
  • chjx501
  • 2014年10月20日 18:17
  • 1579

struts2中<s:url>中文自动编码问题

struts2中,如果使用,直接放进地址栏,如果有中文的话,会发生一个自动编码。那么我们在后台如何将这已经编码的数据解码出来呢?当然,说的是中文传输。 点击我 譬如上面的这段代码,点击链接,...
  • u011044497
  • u011044497
  • 2015年06月09日 10:43
  • 729

struts2 s:if标签以及 #,%{},%{#}的使用方法等

判断字符串的问题:    1、判断单个字符:    这样是从session中取出username的值,并且判断其是否为c,但是这样判断是不正确的,这样判断的话,根本判断不出来,要改成下面这样: ...
  • houfeng30920
  • houfeng30920
  • 2016年07月11日 12:43
  • 3672

struts2 标签的使用之一 s:if

struts2 的web 项目中为了方便的编写jsp,标签是最好的选择1:struts2 标签库的定义在**-core-版本号.jar META-INF 路径下找到struts-tags.tld文件;...
  • chinajust
  • chinajust
  • 2009年02月22日 18:10
  • 91581

JSTL(c标签)与Struts2(s标签)标签

引入jstl标签库 项目导入standard.jar ,jstl.jar包 在jsp页面加入如下句: http://java.sun.com/jsp/jstl/core"%> 可使用EL表达式 ...
  • Running_Ants
  • Running_Ants
  • 2016年10月14日 09:55
  • 2214

Struts2----s标签库

转自:http://blog.csdn.net/meaijojo/article/details/7536793 数据校验是在项目开发中不可缺少的一部分,用户登录时、密码验证时都需要,当然要...
  • ernest201210
  • ernest201210
  • 2013年12月06日 14:51
  • 1939

Struts2中的通用标签<s:property></s:property>

1:tag.jsp Struts2的通用标签 productName: productDesc productPrice: date:...
  • pangqiandou
  • pangqiandou
  • 2017年06月07日 14:09
  • 510

Struts2中的<s:action>标签

一、基本概念 action标签允许开发者在JSP页面中直接调用action,该标签有以下属性: 1 executeResult 可选属性,为一个Boolean类型值,用来指定是否显示action...
  • woshixuye
  • woshixuye
  • 2013年10月20日 14:25
  • 1994
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts2 s:url和s:a
举报原因:
原因补充:

(最多只允许输入30个字)